NodeJS 等待循环完成(async / await / promise)

6 浏览
0 Comments

NodeJS 等待循环完成(async / await / promise)

我正在尝试创建一个循环来获取API中的一些信息,首先我需要这个循环等待请求完成,然后继续下一个数组值,循环完成后,我需要每隔5秒再次调用该函数,但只能在前一次调用结束后才能调用。

类似于这样:

let ids = [1, 2];
async function getInfoAPI(ids) {
   for (const id of ids){
      const apiInfo = await fetch(`https://apiurl/${id}`);
      const infoJSON = await apiInfo.json();
      //在这里执行更多操作
   }
}

现在我需要调用函数并等待循环完成。循环完成后,等待5秒钟,然后再次调用getInfoFromAPI函数。我尝试了setInterval,但如果由于某种原因循环花费超过5秒的时间来响应,即使上一个循环尚未完成,getInfoFromAPI也会被再次调用。

setInterval(function(){ 
        getInfoAPI(ids);
}, 5000);

是否有办法可以使用promises或类似的方法来实现这一点?

0