递归式 同步/异步 可否破callback hell?--sas.js - CNode技术社区

递归式 同步/异步 可否破callback hell?--sas.js
发布于 11 年前 作者 hezedu 6644 次浏览 最后一次编辑是 9 年前 来自 分享

大家好,本人年关无聊写了个控制同步/异步流的程序,名叫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强大的追踪:

image

更多详情(实在手懒)请访问项目地址: github 欢迎大牛指点!

1 回复

就这么一看,还以为是sea.js。。。

回到顶部

AltStyle によって変換されたページ (->オリジナル) /