在递归函数中异步每个系列
Async eachseries within recursive function
我尝试了以下代码片段:
var arrVal = [[1,2],[[2,3],[4,5]],3,4];
var async = require('async');
var recurse = function(arr , callback) {
async.eachSeries(arr, function(eachVal, callback) {
if(typeof eachVal == "object") {
recurse(eachVal);
}
else {
console.log(eachVal);
callback(null);
}
}, callback);};
recurse(arrVal);
预期打印 arrVal
数组中存在的所有数字,但我只得到 1,2(数组第 0 个索引的数字)。
我做错了什么?
有人可以指导更好的方法来实现我想要得到的东西吗?
注意:我希望异步执行此操作
这在您的代码中运行良好,在 if 条件下没有回调。
如果你想要一个异步的方式,你可以使用 async.each 而不是 async.eachSeries async.each
与async.eachSeries的不同之处在于,每次迭代都会等待异步操作完成,然后再开始下一个。
var arrVal = [[1,2],[[2,3],[4,5]],3,4];
var async = require('async');
var recurse = function(arr , callback) {
async.eachSeries(arr, function(eachVal, each_cb) {
if(typeof eachVal === "object") {
recurse(eachVal);
each_cb()
}
else {
console.log(eachVal);
each_cb(null);
}
}, callback);};
recurse(arrVal);
我尝试了以下代码片段:
var arrVal = [[1,2],[[2,3],[4,5]],3,4];
var async = require('async');
var recurse = function(arr , callback) {
async.eachSeries(arr, function(eachVal, callback) {
if(typeof eachVal == "object") {
recurse(eachVal);
}
else {
console.log(eachVal);
callback(null);
}
}, callback);};
recurse(arrVal);
预期打印 arrVal
数组中存在的所有数字,但我只得到 1,2(数组第 0 个索引的数字)。
我做错了什么? 有人可以指导更好的方法来实现我想要得到的东西吗?
注意:我希望异步执行此操作
这在您的代码中运行良好,在 if 条件下没有回调。 如果你想要一个异步的方式,你可以使用 async.each 而不是 async.eachSeries async.each
与async.eachSeries的不同之处在于,每次迭代都会等待异步操作完成,然后再开始下一个。
var arrVal = [[1,2],[[2,3],[4,5]],3,4];
var async = require('async');
var recurse = function(arr , callback) {
async.eachSeries(arr, function(eachVal, each_cb) {
if(typeof eachVal === "object") {
recurse(eachVal);
each_cb()
}
else {
console.log(eachVal);
each_cb(null);
}
}, callback);};
recurse(arrVal);