执行API调用的JavaScript foreach循环中的延迟
我有一个脚本,可以从数据库中获取股票符号,并通过API调用获取股票价格。 在30次迭代之后,脚本失败了,看起来Stocks API服务器上有一个速率限制,所以我想在迭代之间添加dealy,以找到最佳频率。 这是我的剧本:执行API调用的JavaScript foreach循环中的延迟,javascript,velo,Javascript,Velo,我有一个脚本,可以从数据库中获取股票符号,并通过API调用获取股票价格。 在30次迭代之后,脚本失败了,看起来Stocks API服务器上有一个速率限制,所以我想在迭代之间添加dealy,以找到最佳频率。 这是我的剧本: const apiQueue = []; const newPrices = {}; table.items.forEach(stock => { // console.log(stock.symbol) apiQu
const apiQueue = [];
const newPrices = {};
table.items.forEach(stock =>
{
// console.log(stock.symbol)
apiQueue.push(getJSON(console.log(`https://financialmodelingprep.com/api/v3/stock/real-time-price/AAPL`)).then(json =>
{
newPrices[json.symbol] = json.price;
}));
});
await Promise.all(apiQueue);
table.items.forEach(stock =>
{
stock.change = (newPrices[stock.symbol] - stock.price) / stock.price * 100;
stock.price = newPrices[stock.symbol];
});
我是JavaScript新手,我什么都试过了,但我无法让它工作。
我现在的限制是30个API调用,我可以划分foreach循环并每隔几秒钟发送30个调用吗
更新
谢谢你们,我试过你们让我做的,但我没能成功。
这是我最后一次测试:
fetch('https://financialmodelingprep.com/api/v3/stock/real-time-price/aapl,wpm,bhf')
.then(response => {
return response.json()
})
.then(data => {
// Work with JSON data here
var myJSON = JSON.stringify(data);
console.log(myJSON)
for(var i = 0; i < myJSON.length; i++) {
var obj = myJSON[i];
console.log(obj.symbol);
}
})
fetch('https://financialmodelingprep.com/api/v3/stock/real-time-price/aapl,wpm,bhf')
。然后(响应=>{
返回response.json()
})
。然后(数据=>{
//在这里使用JSON数据
var myJSON=JSON.stringify(数据);
console.log(myJSON)
for(var i=0;i
我尝试了这篇文章中所有的例子
它们中没有一个可以工作。您能不能将您的呼叫包装到setTimeout中与其打30个电话,你为什么不得到并过滤你想要的呢?这只需要1次调用。@FF此外,API可能已经有了筛选选项,因此您可以只请求符合条件的所有项(例如,按ID或任何该值)。不确定这个API是否有,但一般来说是有可能的。@VLAZ事实上,在阅读了关于该API的文档之后,从技术上讲,它不会为多个值公开该方法,但它确实可以处理它。我只是像这样试了一下,这说明OP甚至没有试着以广泛的方式阅读这本书。@FF-那是一部经典之作。真正需要做的就是获取元素的所有ID,将它们以逗号分隔,并将它们附加到URL。然后你提出一个要求。