並列実行した Promise で throw されても全てハンドルしたいときの方法(allSettled, finally, etc...) 要諦 以下のアプローチが主な解決方法となるだろう Promise.allSettled で全ての Promise の解決を待ち、解決された値を用いて処理を行う(動機的後処理) Promise.all に渡した各処理に Promise.prototype.{then,catch,finally} を定義し、適切に後処理を行う(非同期的後処理) 各処理を中断可能に実装し、 catch された時点で中断命令を送る(中断) Thanks to @uhyo_ ハンドルしたいだけなら allSettled である必要はない旨のご指摘を頂いたため、本文趣旨を変更しました。 詳細 Promise.all の返却する Promise は何かしら 1 つでも throw