Я пробовал следующий фрагмент кода:
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-го индекса массива).
Что я делаю неправильно? Может ли кто-нибудь руководствоваться лучшим способом достичь того, что я хочу получить?
ПРИМЕЧАНИЕ. Я надеялся сделать это асинхронно
Это нормально работает в вашем коде, если в состоянии отсутствия обратного вызова нет. если вы хотите асинхронный способ, вы можете использовать async.each вместо async.eachSeries async.each
Разница с async.eachSeries заключается в том, что каждая итерация будет ожидать завершения операции async до начала следующего.
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);