Promise返回值问题(处理异步请求返回值问题)

因为项目中我们的数据请求全都是异步的

在开发中遇到的问题:

本意将数据请求封装成一个方法,并return数据请求结果给变量

如:

let getData = () =>{
    //service.getList 为数据请求方法名
    service.getList().then(function(rs){
        return rs
    })
}

var data = getData()

//undefined

因为接口请求是异步,所以导致return的值一直都是undefined

所以可以使用Promise+async实现

function getSomething() {
  return new Promise(function(resolve) {
    service.getList().then(function(rs){
        resolve(rs);
    }) 
  });
}

async function asyncFn() {
 var returnData = await getSomething();
 return returnData 
}

var data = asyncFn();

但是这样写的结果是把Promise对象赋给了data

就是因为Promise异步的,所以他不会直接返回值

这也不是我们想要的

还需要再做一个操作

//将这句调用修改
var data = asyncFn();

//修改成下面的调用方式
asyncFn().then(value =>{
    var data = value
})
发布了51 篇原创文章 · 获赞 0 · 访问量 2927

猜你喜欢

转载自blog.csdn.net/Spearmint_/article/details/101566268