我尝试了以下代码段:
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个索引的数字)。
我做错了什么? 有人可以指导实现我想要的更好的方法吗?
注意:我希望异步执行此操作
答案 0 :(得分:2)
这在您的代码中正常工作,并且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);