タイトルがちょっとわかりにくいような気もしますが…とりあえず今回は JavaScript の非同期処理について。
現在開発中のプロジェクトで、複数の非同期処理を実行し、そのすべてが終わった後でローディングアイコンを非表示にするという処理を行いたくてコードを修正しました。
参考にさせていただいた記事はこちら。
複数の非同期処理を実行して結果待つ – Qiita
https://qiita.com/horikeso/items/6830014923216db009b3
サンプルコードはこちらです。
Promise.all([func1(), finc2()]).finally(() => { // 全処理が終了したら実行する処理 });
Promise.all()
に実行したい関数を配列形式で渡します。
で、全部の処理が終了したら、finally()
が呼び出されるので、そこに実行したい処理を記述しました。
こちらを実装したところ、問題なく意図した通りに実行されました!
なお、今回は実行する関数の成功・失敗に関係無しに全処理が終了したら実行したい処理だったので finally()
を使いましたが、もちろん、then()
や catch()
を使うこともできます。
JavaScript の Promise
はあまり使ったことがないので、これから勉強していきたいと思います!
以上、JavaScript の複数の非同期処理を実行し、それらの処理が全部終了したら、それを検知する方法についてでした。
ご参考になれば幸いです。