有没有办法不使用 await inside loop 来执行以下代码?
const redirects = ['redirectId1'];
for (let i = 0; i < redirects.length; i++) {
const promiseResult = await anAsyncFunction(redirects[i]);
if (promiseResult.redirects) {
redirects.forEach(newRedirect => {
if (!redirects.includes(newRedirect)) redirects.push(newRedirect);
});
}
}
我试过使用地图
const redirects = ['redirectId1'];
const promiseArr = redirects.map(async redirect => {
const promiseResult = await anAsyncFunction(redirect);
if (promiseResult.redirects) {
redirects.forEach(newRedirect => {
if (!redirects.includes(newRedirect)) redirects.push(newRedirect);
});
}
});
await Promise.all(promiseArr);
但这样做时,代码会在newRedirect
被推送到重定向数组之前进一步执行,因此不会调用anAsyncFunction
新的附加值。
我想知道是否有任何可能的方法来实现这一目标?