1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

終わる順番は気にしないから一気に処理を実行させてその結果を返して!

Posted at

はじめに

JavaScrip や TypeScript を触っていると避けて通れないのは「非同期処理」です。
よくネット上で見るものは、非同期処理を同期処理のように順番に実行する方法を記載してくれてるものが多いと思います。

こんな感じ。

_.js
async function sample(){
  await axios.get("/api/test1").then(function (response) {
    ...
  });
}

もしこの状態でAPIが複数に増えた場合、処理速度はどんどん伸びてしまいます。

_.js
async function sample(){
  await axios.get("/api/test1").then(function (response) {
    ...
  });

  await axios.get("/api/test2").then(function (response) {
    ...
  });

  ...
}

そうではなく、「/test1」と「/test2」の終わる順番はどうでもよいから、並列で一気に実行してほしい。
というのが今回の目的です。

イメージ

このようなイメージでAPIの並列実行を行いたいということです。
スクリーンショット 2022-05-19 13.55.24.png

実装

これを可能にするのが「Promise.all」を使うことで可能になります。

_.js
async function sample() {
    const api_array = ["/api/test1", "/api/test2"];
    const response_array = await Promise.all(api_array.map(api => axios.get(api)));

    response_array.map(response => {
        ...
    });
  })
}

自分自身、忘れないように...

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?