【JavaScript】複数の非同期処理を実行して全処理が終わったら検知する

タイトルがちょっとわかりにくいような気もしますが…とりあえず今回は JavaScript の非同期処理について。
現在開発中のプロジェクトで、複数の非同期処理を実行し、そのすべてが終わった後でローディングアイコンを非表示にするという処理を行いたくてコードを修正しました。

参考にさせていただいた記事はこちら。

複数の非同期処理を実行して結果待つ – Qiita
https://qiita.com/horikeso/items/6830014923216db009b3

 

サンプルコードはこちらです。

Promise.all([func1(), finc2()]).finally(() => {
  // 全処理が終了したら実行する処理
});

Promise.all() に実行したい関数を配列形式で渡します。
で、全部の処理が終了したら、finally() が呼び出されるので、そこに実行したい処理を記述しました。
こちらを実装したところ、問題なく意図した通りに実行されました!

なお、今回は実行する関数の成功・失敗に関係無しに全処理が終了したら実行したい処理だったので finally() を使いましたが、もちろん、then()catch() を使うこともできます。

JavaScript の Promise はあまり使ったことがないので、これから勉強していきたいと思います!

 

以上、JavaScript の複数の非同期処理を実行し、それらの処理が全部終了したら、それを検知する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG