2016-03-23 13 views
-1

私はnodeJSアプリケーションからいくつかのURLを打つのです、 URL - >タイム撮影 URL1 - > 3秒 URL2 - > 4秒 URL3 - > 2秒非同期呼び出し使用してNodeJS

と私は約束を使ってglobalという名前の共通変数に結果を保存しています。私はそれを同期してやっていると9秒(4 + 3 + 2)かかる。

3つの変数すべてを1つの変数に非同期的に保存できる方法はありますか?そのため、4秒間だけ待機する必要があります。

現在のところ、非同期的に試している場合、私のアプローチは他人が終了してnullを返すのを待っていません。

+0

電話をかけて何を使用していますか?どんな約束? – Wainage

+0

私は約束しようとしている場合、それは長い時間を取っている、私は直接forループに入れている。 – Akash

+0

次に、どの機能/パッケージですか? – Wainage

答えて

1

は、この

var request = require('request-promise'); 
var Promise = require('bluebird'); 

var urls = ["http://", "http://",...]; 


Promise.map(urls, function(url){ // executes concurrently 
    return request(url) 
}).then(function(resultsArray){ 
    // resultsArray = array of all results 
}); 

幸運を使うBluebird

を学ぼう!

+0

ありがとうございました。私はこれを試してみる。 :) – Akash

関連する問題