我有一个我正在使用的API的速率限制器,它允许每秒20个请求.所有请求都是基于承诺的,一旦有响应,承诺将通过API数据解决.
问题:
我设置了一个promiseArray,它包含所有等待响应的58k承诺.所以内存越来越慢,直到我的内存耗尽为止.在我的具体情况下,我不需要将已解析的数据传递给我then(),数据占用了我所有的RAM.
代码:
}).then(() => {
// 2. Crawl for all clanprofiles from these leaderboards
const promiseArray = []
for (let i = 0; i < clanTags.length; i++) {
// Resolved data from getClanProfile() is eating up all my RAM
const p = backgroundScheduler.getClanProfile(clanTags[i], true)
promiseArray.push(p)
}
return Promise.all(promiseArray)
}).then(() => {
Run Code Online (Sandbox Code Playgroud)
那么有没有办法等待promiseArray被解析而不需要解析数据?
我有一个返回承诺的方法,该方法在内部调用一个 API,该 API 每分钟只能有 20 个请求。问题是我有一大堆对象(大约 300 个),我想为每个对象调用 API。
目前我有以下代码:
const bigArray = [.....];
Promise.all(bigArray.map(apiFetch)).then((data) => {
...
});
Run Code Online (Sandbox Code Playgroud)
但它不处理时序约束。我希望我可以使用 _.chunk 和 _.debounce from 之类的东西,lodash但我无法理解它。有人可以帮我吗?