我有一個循環,在該循環中我想要調用一個API多次,例如500次。

API實現了速率限制,即使沒有實現,很快地發送這麼多請求也是不友善的。

所以我想要減慢循環的速度。那該怎麼做?

事實上,這是相當簡單的,一旦你設置了一個sleep()函數,你就不需要進行更改:

const sleep = (milliseconds) => {
 return new Promise(resolve => setTimeout(resolve, milliseconds))
}

然後你可以在每次迭代中調用await sleep(1000)來暫停1秒,像這樣:

const list = [1, 2, 3, 4]
const doSomething = async () => {
 for (const item of list) {
 await sleep(1000)
 console.log('🦄') 
 }
}

doSomething()