Możesz użyć async.series()
do uruchomienia każdego zadania. Każde zadanie m.in. getBranches()
i getSerials()
"zwróci" tablicę danych. Po zakończeniu serii powinieneś mieć tablicę danych, więc musisz ją spłaszczyć.
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);
});
Zobacz tę odpowiedź dotyczące spłaszczania tablicy tablic w JavaScript.
Edytuj :Nigdy nie używałem async.concatSeries() wcześniej, ale może być krótszy.