nodejs promise for q.js

q.js是一个比较不错的异步流程控制工具,今天看了点文档,写了几个dom,零碎的先记下,改日再整理 npm

q.js的npm地址 https://www.npmjs.org/package/q json

//Q 的使用一
var preadFile = function(file){
	var deferred = Q.defer();//
	fs.readFile(file, "utf8",function(err,data){			
		if(!err){
			deferred.resolve(data);//成功返回的数据
		}else{
			deferred.reject(err);//失败返回的错误信息
		}			
	});
	return deferred.promise;//必须返回这个
}

preadFile("foo.json").then(function (data) {//then方法有两个参数(成功回调,失败回调)
    console.log(data);
}, function (error) {	   
    console.error(error);
});


//Q 的 all组合方法(你能够把一系列promises到整个promises中)
function test(value) {
    return Q.delay(value, 1000);//延迟1秒
}

Q.all([
    test(10),//执行三个函数
    test(20),
    test(30)
])
.spread(function (x, y,z) {//三个函数返回的三个值
    console.log(x, y,z);
    return x+y+z;
})
.done(function(str){//完成前面的后执行
	console.log(str)
});
相关文章
相关标签/搜索