ノードJavaScriptで作業しており、過去のループが完了したときに新しい関数を実行しようとしています。以下のコードでは、// loop through objects in data, to process it
を使用して、データを基にしたforループを表します。ここで、データは配列に追加されます。操作が完了したときに関数を実行する
各応答では、zが1増加します。しかし、データが時々処理される前にzが40に達することがよくあります。ループ内にzを置くことはできません。各ページ内には多くのオブジェクトがあるためです。
誰もが、ループが完了した後にzを増やし、それをチェックする方法を提案できますか?
var req = http.request(headers, function(response) {
response.on('error', function (e) {
//
})
response.on('data', function (chunk) {
//
});
response.on('end', function() {
// loop through objects in data, to process it
z++
if (z == 40) {
newFunction(values, totals)
};
});
})
req.on('error', function(e) {
//
})
req.end();
「誰もがZのみ増加し、ループが完了した後に、それが40に等しいチェックする方法を提案してもらえますか?」これはあなたのループがあなたのコメントの場所であると仮定して、あなたがすでにしていることです。ループがいくつかの非同期タスクをトリガする場合、完了したタスクはループの完了とは関係ありません。 – Paulpro
より具体的な詳細を教えてください。 * "データが処理されました" *:どのデータですか?どのコードですか?データが処理されているかどうかに関係している場合は、関連するコードを入力することが不可欠です。 – trincot
@trincot HTTPリクエストから受信したデータは処理されますが、これはしばしば "if(z == 40){}"条件がtrueを返した後です。データが配列に格納され/処理された後、 "if(z == 40){}"条件を実行します。 – GregW