需求:一個邏輯流程存在A, B, C三個異步操作,其中C依賴B的結果,流程結果至少要C完成,而A無依賴,也不影響流程結果,但若能完成,必須在流程內。
好啦,要求Node.js實現,無要求ES5或ES6。
需要有足夠的可擴展性,因為實際的開發中,複雜的多邏輯操作可沒有這麼簡單。 自豪地采用 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 });
求指点
https://github.com/tj/co
https://github.com/JeffreyZhao/wind
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
需要有足夠的可擴展性,因為實際的開發中,複雜的多邏輯操作可沒有這麼簡單。 自豪地采用 CNodeJS ionic
然后问神丢出一个其写的流程控制库。
使用sas解:
求指点
https://github.com/tj/co
https://github.com/JeffreyZhao/wind