node.js——async同步异步

代码是最好的语言,如下所示:

var async=require('./async');

//同步无关联
function series(){
	async.series({
		'ma':function(done){
			var i=0;
			setInterval(function(){
				if(3==i){
					clearInterval(this);
					done(null,'ma结束');
					return;
				}
				console.log("ma中运行"+new Date());
				i++;
			},1000);
		},
		'mb':function(done){
			var i=0;
			setInterval(function(){
				if(3==i){
					clearInterval(this);
					done(null,'mb结束');
					return;
				}
				console.log("mb中运行"+new Date());
				i++;
			},1000);
		}
	},
	function(err,rs){
		console.log(err);
		console.log(rs);
	}
	);
}

//series();

//异步无关联
function parallel(){
	async.parallel({
		'ma':function(done){
			var i=0;
			setInterval(function(){
				if(3==i){
					clearInterval(this);
					done(null,'ma结束');
					return;
				}
				i++;
				console.log('ma中运行'+new Date());
			},1000);
		},
		'mb':function(done){
			var i=0;
			setInterval(function(){
				if(3==i){
					clearInterval(this);
					done(null,'mb结束');
					return;
				}
				i++;
				console.log('mb中运行'+new Date());
			},1000);
		}
	},
	function(err,rs){
		console.log(err);
		console.log(rs);
	}
	);
}

//parallel();


function waterfall(){
	async.waterfall([
		function(done){
			var i=0;
			setInterval(function(){
				if(4==i){
					clearInterval(this);
					done(null,'ma结束');
					return;
				}
				console.log('ma中运行'+new Date());
				i++;
			},1000);
		},
		function(preVal,done){
			var i=0;
			setInterval(function(){
				if(4==i){
					clearInterval(this);
					done(null,'mb结束');
					return;
				}
				console.log(preVal+new Date());
				i++;
			},1000);
		}
	]);
}

waterfall();


阅读更多
版权声明:本文的原作者 http://blog.csdn.net/mooncom/article/ ,支持原著,拒绝盗版。 https://blog.csdn.net/MOONCOM/article/details/77891881
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭