系列獨立單任務

async.series(tasks, afterTasksCallback) 將執行一組任務。每個任務被執行後,另一個如果任務失敗,非同步會立即停止執行並跳轉到主回撥

任務成功完成後,非同步呼叫回撥,包含所有錯誤和所有任務結果。

function shortTimeFunction(callback) {
  setTimeout(function() {
    callback(null, 'resultOfShortTime');
  }, 200);
}

function mediumTimeFunction(callback) {
  setTimeout(function() {
    callback(null, 'resultOfMediumTime');
  }, 500);
}

function longTimeFunction(callback) {
  setTimeout(function() {
    callback(null, 'resultOfLongTime');
  }, 1000);
}

async.series([
    mediumTimeFunction,
    shortTimeFunction,
    longTimeFunction
  ],
  function(err, results) {
    if (err) {
      return console.error(err);
    }

    console.log(results);
  });

結果: ["resultOfMediumTime", "resultOfShortTime", "resultOfLongTime"]

用物件呼叫 async.series()

你可以用物件替換 tasks 陣列引數。在這種情況下,結果也將是具有與任務相同的鍵的物件。

計算某些任務並輕鬆找到每個結果非常有用。

async.series({
    short: shortTimeFunction,
    medium: mediumTimeFunction,
    long: longTimeFunction
  },
  function(err, results) {
    if (err) {
      return console.error(err);
    }

    console.log(results);
  });

結果: {short: "resultOfShortTime", medium: "resultOfMediumTime", long: "resultOfLongTime"}