4
2

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 3 years have passed since last update.

[2021年]Promoiseでwait風メソッド

Last updated at Posted at 2021-07-28

前置き

以前こんな記事を書いてLGTMをたくさんもらいましたが今回はその別解でよりモダンな方法を紹介します。

async, await, Promiseメソッドが実装されたことにより、より簡単に、しかも非jQueryでwaitを実現できるようになりました。

実装

  function wait(msec) {
    return new Promise((resolve) => setTimeout(resolve, msec));
  }

これだけです。え?これどう動かすの、と言われたら使い方は二種類あります。

パターン1

console.log(new Date);

wait(5000).then(() => {
  console.log(new Date);
});

このタイプは単純にPromiseのメソッドチェーンを使っているのでどこでも使えます。ただしメソッド自体は非同期で走るのでwaitは素通りされてします。

パターン2

async function test() {
  console.log(new Date);
  await wait(5000);
  console.log(new Date);
}

今度のタイプはasyncメソッドの中であればawaitでpromiseを待つことができることを利用しているのでsleep関数みたいな使い方ができます。

javascriptは日々進化していて便利になっていってますのでついていくのが大変な反面面白い言語です。

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?