Du kan använda async.series()
att köra varje uppgift. Varje uppgift t.ex. getBranches()
och getSerials()
kommer att "returnera" en mängd data. När serien är klar bör du ha en rad med data, så du måste platta till den.
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);
});
Se detta svar angående utjämning av en array av arrayer i JavaScript.
Redigera :Jag har aldrig använt async.concatSeries() innan men det kanske vara kortare.