我想列印一些東西并為下一次迭代設定超時。例如:1 --> 2s 延遲 --> 2 --> 2s 延遲 --> 3 --> ...
for (let i = 0; i < 10; i ) {
console.log("index: " i);
setTimeout(() => {
}, coffeeMachine.shoppingCard.list[i].time * 1000);
}
}
這將列印:
0,1,2,3,4,5,6,7,8,9 --> 2s delay
但我想要這個:
1 --> 2s delay --> 2 --> 2s delay --> 3 -->
uj5u.com熱心網友回復:
現代 JS 有一個叫做async / await.
如果將 setTimeout 包裝到 Promise 建構式中,則可以偽造延遲,并await delay(ms)在此 Promise 上使用。
正如評論中提到的,MDN 在async / await-> MDN Docs上有一些很好的檔案
例如。
const delay = ms => new Promise(r => setTimeout(r, ms));
async function test() {
for (let i = 0; i < 10; i ) {
console.log("index: " (i 1));
await delay(2000);
}
}
test();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/513286.html
