次のコードJavaScriptの非同期/ Array.map(内部約定の待ち)
class SomeClass {
async someFunc() {
const urlParameters = [0, 1, 2];
const batchAjaxResult = await urlParameters.map((parameter) => {
const result = await $.get(`someUrl/${parameter}`);
return {
parameter,
result
}
});
console.log(batchAjaxResult);
}
}
を考えるJavaScriptが代わりに実際の約束結果の解決約束の配列を返します。
これはおそらくArray.map()
がプロミスとして実装されていないためです。
PromiseベースのバージョンArray.map
はありますか?
これはArray.map
の中にラップされたバッチ応答を返す方法であるため、How to return the response from an asynchronous callとは異なる質問です。
具体的に[この回答](http://stackoverflow.com/a/30180679/542251)私はすでに述べたES7を使用してい – Liam
@Liam非同期/のawait構文の底部に向かって見て。この問題はArray.mapを使用している場合にのみ発生します。 'const X = Array.map(...)はまだ実装されていないようです。 –
配列ではなく約束を 'await'するだけです。 'Promise.all(配列)'を待ちます。 – jib