私は、株式の配列の過去の価格データを取得して、約束して複数のリクエストをしています。複数のリクエストが約束されている場合、リクエストに対するレスポンスをどのように一致させるのですか?
応答が同じ順番で戻ってこない場合があるため、どの応答がどの要求に対応しているかを知る方法が必要です。応答は識別情報なしで返されます。
ここに1つの応答は次のようになります。
{
history: {
day: {
date: '1996-01-02',
open: 61.4063,
close: 63.6719,
high: 63.6875,
low: 59.6406,
volume: 10507600
},
...
}
}
そして、ここに私の要求です:
var promises = [];
var symbols = ['MSFT', 'AAPL', 'GOOGL', 'FB', 'NVDA'];
symbols.forEach(function(symbol) {
promises.push(axios.get('https://sandbox.tradier.com/v1/markets/history', {
headers: {
Accept: 'application/json',
Authorization: 'Bearer ' + tradierACCESSTOKEN
},
params: {
symbol: symbol,
interval: 'daily',
start: '2012-01-01'
}
}));
});
axios.all(promises)
.then(function(responses) {
responses.forEach(function(response) {
var data = response.data;
// how do i know which response corresponds with the requested stock?
});
})
.catch(error => console.log(error));
'axios.all()'に 'axios'とは何ですか? – sabithpocker
なぜ多くの人が自分の人生を傷つけ、リストに約束を使っているのか理解できません。 'async'を使う方がはるかに簡単でコードははるかに読みやすくなります。 'async.map'を試してみてください。 http://caolan.github.io/async/docs.html#map –
@FrankRothどうすれば簡単でしょうか?あなたはまだコレクションを持っていますが、あなたはまだ 'iteratee'を持っていますが、あなたはまだ結果ハンドラを持っています。本質的に同じコードを必要とするだけで、別のコードと呼ぶだけです。そして、 'async.map'は約束、hello callback-hellを使っていません... – str