超过了每个异步调用的最大堆栈大小



我在遍历中使用了forEach循环

await traverse(json).forEach(async function (value) {
for(var i=0 i<10; i++)={
var result=  await someFunction(i);
var result2= doSomething(result);
}
var r = result2;
}    

一旦我将内部函数设置为async,我就会得到Maximum call stack size exceeded错误。我能做什么?

@ t.j.。克劳德说

forEach不关心异步使用(不等待)。你可以看看横向异步

我认为这个包可以更灵活地适应这种情况。

let queue = traverse(object, function(node, next) {
someAsyncOperation(node)
.then(next)
.catch(err =>{
queue.break();
});
}, function() {
console.log('Done!');
});

最新更新