需求:一個邏輯流程存在A, B, C三個異步操作,其中C依賴B的結果,流程結果至少要C完成,而A無依賴,也不影響流程結果,但若能完成,必須在流程內。
好啦,要求Node.js實現,無要求ES5或ES6。
6 回复
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
});
求指点