函數(shù)內(nèi)有 await鞭光,必須要使用 async 修飾芽丹;有 aysnc 修飾的函數(shù)冶忱,函數(shù)內(nèi)不一定非要有 await 代碼;
await 的作用:
可以解決下一個(gè)執(zhí)行依賴于上一個(gè)異步執(zhí)行的結(jié)果;
如果最終等待的值是成功的 Promise 對象遏乔,則會(huì)阻塞后面的代碼
如果最終等待的值是失敗的 Promise 對象,則按照同步順序執(zhí)行后面的代碼
await 會(huì)簡化 then发笔,直接得到 resolve 里面的數(shù)據(jù)示例:
function test() {
return new Promise(((resolve, reject) => {
//假裝是你的異步任務(wù):
const isSuccess = true
if (isSuccess)
resolve('任務(wù)2成功')
else
reject('任務(wù)2失敗')
}))
}
async function main() {
//任務(wù)1盟萨,3,4是同步任務(wù)
console.log('任務(wù)1')
const data = await test();
console.log(data)
console.log('任務(wù)3')
}
main()
console.log("任務(wù)4")
打印:
任務(wù) 1
任務(wù) 4
任務(wù)2成功
任務(wù) 3