Node --- Promise中的多异步协作
生活随笔
收集整理的這篇文章主要介紹了
Node --- Promise中的多异步协作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當我們需要處理多個異步調用時,應該如何處理呢?
//首先假設有2個讀取文件的異步調用,promise1和promise2 var promise1 = readFile ("foo.txt", "utf-8"); var promise2 = readFile ("bar.txt", "uft-8");//然后,我們可以使用all()方法將兩個單獨的Promise重寫抽象組合成一個新的Promise,并用then暴露給Deferred var deferred = new Deferred(); deferred.all([promise1, promise2]).then(function (result) {// 正確情況下做什么 }, function (err) {// 錯誤了做什么 });// 最后利用prototype重寫Deffered的all()方法; Deferred.prototype.all = function (promises) {var count = promises.length;var that = this;var results = [];promises.forEach(function (promise, i) {promise.then(function (data) {count--;results[i] = data;if (count === 0) {that.resolve(results);}}, function (err) {that.reject(err);});});return this.promise; };詳情參考《深入淺出NODE》P88
總結
以上是生活随笔為你收集整理的Node --- Promise中的多异步协作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1470A. Strange Birth
- 下一篇: 844. 走迷宫