gpt4 book ai didi

javascript - 在 while 循环中等待异步方法

转载 作者:行者123 更新时间:2023-12-01 02:23:40 24 4
gpt4 key购买 nike

我有一个 while 循环,从一个日期循环到另一个日期。我想向 firebase 实时数据库提交一些数据。

我要提交,等待结果返回。然后进入下一次迭代。

var loop = moment(startDate, 'MM-DD-YYYY').toDate();
var end = moment(endDate, 'MM-DD-YYYY').toDate();

while(loop <= end){

firebaseAdmin.database().ref('test/data').set({}).then(function(){

}).catch(function(error) {

});

const newDate = loop.setDate(loop.getDate() + 1);
loop = new Date(newDate);

}

Firebase 数据库使用 Promise。插入完成后,如何使用它们进一步进入循环。我怎么知道一切都已完成以便我可以返回?

最佳答案

您可以递归地执行此操作,因为您只想在当前请求成功时才继续,如下所示:

var loop = moment(startDate, 'MM-DD-YYYY').toDate();
var end = moment(endDate, 'MM-DD-YYYY').toDate();

function fetchDataRec(loop, end)
{
if(loop <= end) return;

firebaseAdmin.database().ref('test/data').set({}).then(function(){
if(/*check if you want to continue*/) {
const newDate = loop.setDate(loop.getDate() + 1);
loop = new Date(newDate);
fetchDataRec(loop, end);// loop while refactored to recursion
}
}).catch(function(error) {

});
}
fetchDataRec(loop, end);

https://www.sitepoint.com/recursion-functional-javascript/

关于javascript - 在 while 循环中等待异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48992743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com