执行API调用的JavaScript foreach循环中的延迟

执行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

我有一个脚本,可以从数据库中获取股票符号,并通过API调用获取股票价格。 在30次迭代之后,脚本失败了,看起来Stocks API服务器上有一个速率限制,所以我想在迭代之间添加dealy,以找到最佳频率。 这是我的剧本:

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。然后你提出一个要求。