一个简单的Node.js异步操作经理分享

一个简单的Node.js异步操作经理分享
Nodejs最近写的更多,在异步操作的开始遇到的少了,因为我想做的东西比较简单,API同步,为了节省同步进行直接使用,慢慢发现,这不是个事啊,不必使用异步,同步性好的特性真的不好意思。很多东西和API的木材同步。

好的!编写异步,并慢慢出现这种代码。
复制代码代码如下所示:
mysql.query('xxxx)。在(''成功,函数(){(){
mysql.query('xxxx)。在(''成功,函数(){(){
mysql.query('xxxx)。在(''成功,函数(){(){
mysql.query('xxxx)。在(''成功,函数(){(){
mysql.query('xxxx)。在(''成功,函数(){(){
mysql.query('xxxx)。在(''成功,函数(){(){
/让我们说他妈的
});
});
});
});
});
});
好了,你看,这么多丑陋的代码,像老太太的绑定一样,异步操作管理器,然后精美的,嘿嘿,绝对够了,用什么代码跟代码,说话,直接光代码,比如代码:

这还不够全面,例如,没有什么问题。
复制代码代码如下所示:
*
*异步经理
*作者:jser.me
*
*使用方法
*无功asyncmg =需要('。/把AsyncManager);
* asyncmg
*推(函数(下一个){)
* some_aysnc_method()对{(''成功。
*…
*下一步();
* })
* })
*推(函数(下一个){)
* other_aysnc_method()对{(''成功。
*…
*下一步();
* })
* })
*推(…)
*(运行)/执行
*,(''成功,函数(){){
* allthings_is_down();
* };
*
*方法接受数组
* /

功能型(obj){
返回object.prototype.tostring.call(obj)。比赛( / {对象({ ^ } } *) } /){ 1 };
}

功能把AsyncManager(arg){
this.execarrys = { };
This.push(Arg);
}

使用系统继承方法
要求('util)。继承(把AsyncManager,要求('events)。EventEmitter);

函数的成功运行次数
asyncmanager.prototype.succcount = 0;
添加
AsyncManager.prototype.push =功能(arg){

var =;
如果(typeof(Arg)= = 'array){
arg.foreach(功能(V I){
This.execArrys.push(V);
});
{人}
This.execArrys.push(Arg);
}

返回这个;
};

实现
asyncmanager.prototype.run =函数(){
var =;

如果(this.succcount = =这。execarrys。长度){
在所有函数成功执行之后触发事件
This.emit(''成功');
{人}
这个execarrys { }。succcount(self.run.bind(自我));
}

这succcount + +;
返回这个;
};

出口= module.exports =功能(arg){
返回把AsyncManager(Arg);
}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部