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)
});
相關文章
相關標籤/搜索