这是原本的代码
function DataSet(){
setTimeout(()=>{
return new Promise(resolve=>{
let arr = [
{value:' ',text:'全部'},
{value:'warehouse1',text:'仓库1'},
{value:'warehouse2',text:'仓库2'},
{value:'warehouse3',text:'仓库3'},
]
resolve(arr)
})
},2000)
}
async function getDataSet(){
let dataSet = await DataSet();
console.log(dataSet);//此时是获取不到dataSet三秒后返回的数据的,
}
正确代码应该是这样的
function DataSet(){
return new Promise(resolve=>{
setTimeout(()=>{
let arr = [
{value:' ',text:'全部'},
{value:'warehouse1',text:'仓库1'},
{value:'warehouse2',text:'仓库2'},
{value:'warehouse3',text:'仓库3'},
]
resolve(arr)
},2000)
})
}
async function getDataSet(){
let dataSet = await DataSet();
console.log(dataSet);//此时是可以获取到dataSet三秒返回的数据的,
}
经过这次教训,理解到,async …/ await ,这个await只有在他等待的函数返回的是Promise的时候才会生效,而且异步动作必须包含Promise里面。