出題:多邏輯容錯機制的實現~
发布于 9 年前 作者 iwillwen 3651 次浏览 最后一次编辑是 8 年前 来自 问答

需求:一個邏輯流程存在A, B, C三個異步操作,其中C依賴B的結果,流程結果至少要C完成,而A無依賴,也不影響流程結果,但若能完成,必須在流程內。

好啦,要求Node.js實現,無要求ES5或ES6。

6 回复

需要有足夠的可擴展性,因為實際的開發中,複雜的多邏輯操作可沒有這麼簡單。 自豪地采用 CNodeJS ionic

然后问神丢出一个其写的流程控制库。

使用sas解:

var sas = require('sas');
sas([{
  key1: a,
  key2: [b, c]
}, end]);
function procedure(cb) {
  var results = [];
  processA();

  function done() {
    cb(results);
  }

  function processA() {
     //do something here,put result into results
     async(function(err,rep){
       results[0] = err ? err : rep;
       processB(results,processC);
     });
  }

  function processB() {
    //do something here,err return
    async(function(err,rep) {
      if(err) {
            results[2] = err;
            return cb(results);
          } else {
            results[2] = rep;
            processC(results);
          }
    }
  }

  function processC() {
    //do something here,err return
    async(function (err,rep){
      if(err) {
            results[3] = err;
            return cb(results);
          } else {
            results[3] = rep;
            done(results);
          }
    });
  }
}

procedure(function(results) {
  //deal with results
});

求指点

回到顶部