我认为这可能是一个相当小的问题,但我仍然是相当新的节点和Javascript。
我有一个列表和一个函数如下:
var my_list = [1, 7, 9, 112, 15, 17, 19, 25, ...]
// Main search function
const search = async(_) => {
// Loop from ID 1 to X
for (let index = 1; index < 10000; index++) {
if (my_index.indexOf(index) !== -1) {
// Try to find a brewery with this ID
const brewery = await findBreweriesById(index);
// If it's found ..
if (brewery) {
console.log(brewery.brewery_name);
}
} else {
console.log(`Nothing found for ID ${index}..`);
}
}
console.log("Finished searching!");
};
search();
该函数将作为对速率受限API的调用运行,这意味着并非my_list
中的所有值都将被一次提取。我必须重复提取函数。我想要做的是能够从主列表中删除任何成功提取的值,即my_list
,并重新运行该函数,直到my_list
中的所有值都已被提取。
我知道两件事,
1.我需要从列表中删除获取的索引元素,我已经发现可以使用my_list.splice(indexOf(index),1)
来完成此操作
1.我知道我可以使用while循环,但是我不知道我应该把它放在哪里,设置什么条件,这也让我很困惑,不知道我应该在哪里拼接来删除元素。
任何帮助都将不胜感激。
- EDIT**更具体地说,API调用的速率限制为每分钟100次调用。之后,它将返回一个
429 Too many requests
。因此,我希望删除所有200
返回并循环,即重新运行应保留在列表中的429的函数。
- EDIT**更具体地说,API调用的速率限制为每分钟100次调用。之后,它将返回一个
1条答案
按热度按时间abithluo1#
或许试试这个: