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) });