出題:多邏輯容錯機制的實現~
需求:一個邏輯流程存在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
});
求指点