多くのページ(同じページだが異なるデータ)からデータを取得しようとしています。問題は、ノードの非同期要求メソッドと、 'for'ループがあると思います。 (私はnodejsで新しいです)。インクリメンタルパラメータを使用したループGETリクエスト
リクエストを使用してJSONデータを取得するためにforループを使用しますが、リクエストの最初の応答を得る前にループが終了しました(私は思う)。
これは私がJSONに乗る毎日のために、コードです:確定すると
var str = [];
for (var i = 0; i < 2000; i++) {
var url = 'https://WEbPAGE.com/public?start='+prevDate+'&end='+nextDate;
request(url, (error, response, body)=> {
if (!error && response.statusCode === 200) {
str.push(body+'\r\n')
}
})
prevDate = nextDate;
nextDate += oneDay;
if (nextDate >= today) break;
};
、私はリクエストからすべてのデータを得るが、注文しないと、配列の位置の多くは空です。
bluebirdライブラリを使用してリクエストモジュールを約束します.http://stackoverflow.com/questions/28308131/how-do-you-properly-promisify-request http://bluebirdjs.com/docs/api/promiseを使用してください。 all.html –
この質問をご覧ください:http://stackoverflow.com/questions/23035296/simplest-way-of-doing-a-callback-when-two-ajax-request-are-complete – KungWaz
@AnmolMittal約束初心者のための混乱に追加します。私は、コールバックを理解することは、Node.js(これらの非同期質問の多すぎるもの)の必要な部分だと思います。ユーザーに約束のライブラリーを呼び出すと、コールバックの仕組みが分かりません。Node.JS – xShirase