Bạn có thể sử dụng async.series ()
để chạy từng tác vụ. Mỗi nhiệm vụ v.d. getBranches()
và getSerials()
sẽ "trả về" một mảng dữ liệu. Khi chuỗi hoàn thành, bạn sẽ có một mảng dữ liệu, vì vậy bạn cần làm phẳng nó.
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);
});
Xem câu trả lời này liên quan đến việc làm phẳng một mảng các mảng trong JavaScript.
Chỉnh sửa :Tôi chưa bao giờ sử dụng async.concatSeries () trước nhưng nó có thể ngắn hơn.