JavaScript中如何在一個循環(huán)中等待示例代碼詳解
下面是如何使用for..of
循環(huán)來迭代一個數(shù)組并在循環(huán)內等待:
const fun = (prop) => { return new Promise(resolve => { setTimeout(() => resolve(`done ${prop}`), 1000); }) } const go = async () => { const list = [1, 2, 3] for (const prop of list) { console.log(prop) console.log(await fun(prop)) } console.log('done all') } go()
你需要把循環(huán)放在一個異步函數(shù)中,然后你可以使用await
,循環(huán)會停止迭代,直到我們正在等待的承諾得到解決。
你可以用for...in循環(huán)做同樣的事情,對一個對象進行迭代:
const fun = (prop) => { return new Promise(resolve => { setTimeout(() => resolve(`done ${prop}`), 1000); }) } const go = async () => { const obj = { a: 1, b: 2, c: 3 }; for (const prop in obj) { console.log(prop) console.log(await fun(prop)) } console.log('done all') } go()
你也可以使用while
或do..while
或for
循環(huán),也是這種結構。
但是你不能用Array.forEach()
或Array.map()
來等待。
到此這篇關于在JavaScript中如何在一個循環(huán)中等待(附代碼示例)的文章就介紹到這了,更多相關js循環(huán)等待內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
分享一道筆試題[有n個直線最多可以把一個平面分成多少個部分]
今天地鐵上和一個同事閑聊,給我說的一道題,回來想了想,寫出來的,說來慚愧,我用的是行測方面數(shù)字推理里面的知識歸納出來的,當然這個可以用遞歸寫出來,說說我的代碼,以及遞歸的思路2012-10-10javascript實現(xiàn)十秒鐘后注冊按鈕可點擊的方法
這篇文章主要介紹了javascript實現(xiàn)十秒鐘后注冊按鈕可點擊的方法,涉及javascript時間及樣式操作的相關技巧,需要的朋友可以參考下2015-05-05JavaScript+html實現(xiàn)前端頁面滑動驗證(2)
這篇文章主要為大家詳細介紹了JavaScript+html實現(xiàn)前端頁面滑動驗證的第二種方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06新浪微博字數(shù)統(tǒng)計 textarea字數(shù)統(tǒng)計實現(xiàn)代碼
從新浪微博代碼里抄的,非常不錯,需要的朋友可以參考下。2011-08-08JavaScript裝飾器函數(shù)(Decorator)實例詳解
這篇文章主要介紹了JavaScript裝飾器函數(shù)(Decorator),結合實例形式分析了JavaScript裝飾器函數(shù)(Decorator)的功能、實現(xiàn)與使用方法,需要的朋友可以參考下2017-03-03