Можете да използвате async.series()
за изпълнение на всяка задача. Всяка задача напр. getBranches()
и getSerials()
ще "върне" масив от данни. Когато серията е готова, трябва да имате масив от масив от данни, така че трябва да го изравните.
async.series([
function getBranches(done) {
async.mapSeries(branch_name, function (item, done) {
// FYI 'done' inside this function is not the same 'done' as outside the function
// ...
}, done);
},
function getSerials(done) {
async.mapSeries(serial, function (r_serial_no, done) {
// ...
}, done);
},
// etc
], function (err, data) {
// data should come back as multidimensional array
// so you should only need to flatten it
var finalJSON = [].concat.apply([], data);
});
Вижте този отговор относно изравняването на масив от масиви в JavaScript.
Редактиране :Никога не съм използвал async.concatSeries() преди, но може бъдете по-къси.