Vous pouvez utiliser async.series()
pour exécuter chaque tâche. Chaque tâche, par ex. getBranches()
et getSerials()
"renverra" un tableau de données. Lorsque la série est terminée, vous devriez alors avoir un tableau de tableau de données, vous devez donc l'aplatir.
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);
});
Voir cette réponse concernant l'aplatissement d'un tableau de tableaux en JavaScript.
Modifier :Je n'ai jamais utilisé async.concatSeries() avant mais il pourrait être plus court.