Open ryou opened 6 years ago
eslintで、async/awaitのループ内での使用を禁止する項目がある理由を調べる
eslintのno-await-in-loop
は、awaitをループ文内で使用すると、逐次処理となってしまい非同期処理の利点を生かせなくなるからやめろっていう意味っぽい。
ただ、理由があって逐次処理をしている(配列の前から順番に実行して欲しい、例外を吐いたタイミングで残りの処理を実行したくない等)場合も結構あるので、その場合は
/* eslint-disable no-await-in-loop */
// 〜な理由でループ内でのawaitを許可
for (item of items) {
await someAsyncFunc();
}
/* eslint-enable no-await-in-loop */
Promise内で発生した例外は、catchされなかった場合どのように処理されるか仕様で決まってないっぽい。
現状プラットフォームの実装依存だけど、ブラウザ・Node.jsともにコンソールに出力してくれてはいる
https://qiita.com/kidach1/items/d997df84a0ede39d76ad