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
})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章