array.forEach( element => { let offset = 0; let numberOfRows = 100; while (numberOfRows === 100){ getUrls(offset*100, element) // DB query that retrieves rows, more on this below .then( //code ) offset++; }})getUrls:采用 100n 偏移量的數據庫存儲過程,返回包含該存儲過程結果的承諾我嘗試使用 while 循環,然后才意識到它沒有等待承諾解決,創建了大量的 getURL 承諾并溢出堆內存。我最終保留了 while 循環,將其全部包裝在一個函數中,并承諾將其強制轉換為同步代碼。有沒有更好/替代的方法來做到這一點,比如用承諾模擬一個while循環?什么是成語JS方式?asyncawaitgetUrls
如何模擬帶有承諾的同步 while 循環?
慕村225694
2022-09-29 16:40:21