0
私は現在非同期APIコールを持っており、async &要求NPMパッケージを使用して文字列のエンドポイントに対して19の異なるリクエストを行います。私はちょうど私の要求の最後に、返されている実際のオブジェクトが以前の要求のデータであることを発見しました。ここに私のコードの例です:Async Parallel&Request PackageがAPIの結果を順不同で返します(NodeJS/Express)
router.get('/', function(req, res) {
async.parallel([
function(next) {
request(queryString + 'end point link', function(error, response, body) {
if (!error && response.statusCode == 200) {
var variable0 = JSON.parse(body);
return next(null, variable0);
};
console.log(error);
next(error);
});
},
function(next) {
request(queryString + 'end point link', function(error, response, body) {
if (!error && response.statusCode == 200) {
var variable19 = JSON.parse(body);
return next(null, variable19);
};
console.log(error);
next(error);
});
}],
function(err, results) {
res.render("view", {
variable0: results[0],
variable1: results[1],
variable2: results[2],
......
......
variable19: results[19]
});
});
});
これは完全に働いていた私は私の最後の三つの変数(17、18、19、それらを呼び出すことができますが)前にAPI呼び出しの結果を返す気づいたまで。なぜこのようなことが起こっているのか分かりません。アドバイスをいただければ幸いです。
変数asyncが提供する変数は、適切なリクエストに対して指定されたインデックスのオブジェクトに変更された配列です。