因爲項目中我們的數據請求全都是異步的
在開發中遇到的問題:
本意將數據請求封裝成一個方法,並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
})