場景如下:現有一個方法需要等待其他N個異步函數執行完畢后執行,callback麻煩的頭大,翻了一波API原來小程序已經支持 async函數,那一切就好辦了。
廢話不多說,直接開始擼。。。
第一步:打開增強編譯
第二部:直接擼代碼,這里寫了個🌰
wait:function() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('ajax請求等待')
}, 2000)
})
},
onLoad: async function(options) {
let ajaxTime = await this.wait();
console.log(ajaxTime)
let getIndex = this.getArrIndex(this.data.sexArray, 'other.其他');
console.log('異步執行后獲取index:'+getIndex)
this.setData({
sexindex: getIndex
})
},
上面的執行順序是:
先執行:this.wait(),進入函數體,然后進入等待
2秒后執行:console.log(ajaxTime)
下面的代碼則按照基本的js執行順序執行。