gpt4 book ai didi

javascript - 在 NodeJS 和 Mocha 中循环的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 18:07:37 25 4
gpt4 key购买 nike

我试图在 NodeJS 的循环中编写一个循环,但我有点困惑,结果没有给我我所期望的结果 - 有时回调会被击中两次,等等。我正在使用 async 模块,如果有人能告诉我下面的代码中可能出错的地方,那就太好了。如果有更好的方法来做到这一点,我将不胜感激。

it("should add some numbers", function(done){
var typed_totals = 0, i = 0;
async.each(arr1, function(value, callback1){
var j = 0;
async.each(arr2, function(element, callback2){
testFunction(function(result){
calculate(result, function(total){
typed_totals += total;
if(++j < arr2.length){
callback2();
} else if (++i <= arr1.length){
callback1();
} else {
done();
}
});
});
});
});
});

testFunction() 在我的例子中执行一个 http 请求并获取一些值。 calculate() 实际上只是将其中一些加在一起。

如果有任何不清楚的地方,请发表评论,我会根据需要编辑我的问题。

最佳答案

我要去 sleep 了,如果您编辑更详细的信息,我明天可能会提供更具体的答案,这是我的嵌套 async.each 循环的示例喜欢。

var async = require('async');

function addNumbers(arr1, arr2, callback){
var typed_totals = 0;

async.each(arr1, iterator1, function(err){
callback(err, typed_totals);
});

function iterator1(val1, done1){
typed_totals += val1;

async.each(arr2, iterator2, function(err){
if(err){ return done1(err) };
done1(null);
});

function iterator2(val2, done2){
process.nextTick(function(){
typed_totals += val2;
done2(null);
});
};
};
};

addNumbers([1,2],[3,4], function(err, total){
console.log(err, total);
});

关于javascript - 在 NodeJS 和 Mocha 中循环的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com