繁体   English   中英

API 调用的并发请求

[英]Concurrent request for API calls

我想在 3 个并发请求中调用 API,但只要其中一个是空闲的,我想要另一个对 go 的请求。现在我正在 promise 中执行 3 个请求,但要等待所有完成。

实现正确的 3 个并发请求的最佳方法是什么?

const productsQuery = await getAllProducts();
const products = splitArrayIntoChunksOfLen(productsQuery.rows, 3);
for (let index = 0; index < products.length; index++) {
      const prodArr = products[index];

      const promises = prodArr.map((item) => callCustomAPI(item));

      await Promise.all(promises);
 }

已经存在一个库。 它被称为p-limit

import pLimit from 'p-limit';

const limit = pLimit(CONCURRENT_REQUESTS);

const input = [
    limit(() => fetchSomething('foo')),
    limit(() => fetchSomething('bar')),
    limit(() => doSomething())
];

// Only $CONCURRENT_REQUESTS promises are run at once
const result = await Promise.all(input);
console.log(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM