递归式 同步/异步 可否破callback hell?--sas.js
大家好,本人年关无聊写了个控制同步/异步流的程序,名叫sas.js。S代表sync,AS代表async。可以递归,因此callback有多少层都不害怕。现已发布到npm上 npm install sas
。
用法很简单,大家只要记住:数组代表同步,对象代表异步。
废话不多说,上示例:
nodejs全部用异步方法 mkdir
创建目录树。
先创建一个根目录,再在根目录下创建三子目录,再在三子目录下各创建三子目录。
var sas = require('sas');
var fs = require('fs');
var mktree = function(path) {
return function(cb, ext) {
if (ext.Sparent) {
path = ext.Sparent[0] + path;
}
fs.mkdir(path, 777, function(err, result) {
if (err) {
return cb('$STOP');
}
cb(path);
});
}
}
var plan = [
mktree(__dirname + '/root' + Date.now()), {
'1': [mktree('/1'), {
'1-1': mktree('/1-1'),
'1-2': mktree('/1-2'),
'1-3': mktree('/1-3')
}],
'2': [mktree('/2'), {
'2-1': mktree('/2-1'),
'2-2': mktree('/2-2'),
'2-3': mktree('/2-3')
}],
'3': [mktree('/3'), {
'3-1': mktree('/3-1'),
'3-2': mktree('/3-2'),
'3-3': mktree('/3-3')
}]
}
];
sas(plan,{debug:true});
console强大的追踪:
更多详情(实在手懒)请访问项目地址: github 欢迎大牛指点!
1 回复
就这么一看,还以为是sea.js。。。