亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在JS循環(huán)中使用async/await的方法

 更新時間:2018年10月12日 09:04:15   投稿:mrr  
async / await是ES7的重要特性之一,也是目前社區(qū)里公認(rèn)的優(yōu)秀異步解決方案。這篇文章主要介紹了在JS循環(huán)中使用async/await的方法,需要的朋友可以參考下

async / await是ES7的重要特性之一,也是目前社區(qū)里公認(rèn)的優(yōu)秀異步解決方案。目前,async / await這個特性已經(jīng)是stage 3的建議,可以看看TC39的進(jìn)度,本篇文章將分享在JS循環(huán)中使用async/await的方法.

在開發(fā)maty.js時,遇到一個數(shù)組任務(wù),數(shù)組項是內(nèi)部異步執(zhí)行的函數(shù),期望是同步依次執(zhí)行每項函數(shù),每項函數(shù)執(zhí)行完本身的異步任務(wù)后,繼續(xù)下一項。

剛開始單純使用map來循環(huán)執(zhí)行,并且await每項函數(shù)。如下所示:

starters.map(async (fn, i)=> {
 console.log('++++++++++: ', i)
 await fn(ctx);
});

結(jié)果是依次先輸出了索引i,而不是阻塞每次循環(huán),按期望執(zhí)行。

搬出Google大法,可以看出對在 for…of 循環(huán)語法中使用await是有效的。

for (const fn of starters) {
 await fn(ctx);
}

同時文章中指出使用Promise.all,是無法解決當(dāng)前問題的,因為all方法是并行運行的。很奇怪為什么沒有串行執(zhí)行的原生方法。

總結(jié)

以上所述是小編給大家介紹的在JS循環(huán)中使用async/await的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論