Sie können async.series()
verwenden um jede Aufgabe auszuführen. Jede Aufgabe z.B. getBranches()
und getSerials()
wird ein Array von Daten "zurückgeben". Wenn die Serie fertig ist, sollten Sie ein Array von Daten haben, also müssen Sie es glätten.
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);
});
Siehe diese Antwort zum Reduzieren eines Arrays von Arrays in JavaScript.
Bearbeiten :Ich habe noch nie async.concatSeries() verwendet vorher, aber es könnte kürzer sein.