LoginSignup
18
18

More than 5 years have passed since last update.

コールバックを await で待ち受ける(JavaScript)

Last updated at Posted at 2016-10-07

await は async および Promise を待ち受けることができますが、当然、旧来のコールバックは待ち受けることができません。自分の書いてるコードであれば Promise を返すように書き換えればいいのですが、ライブラリがコールバックを返す場合は困ったりします。

そういう場合、Promise で包んであげれば待ち受けることができます。

例えば setTimeout() のコールバックの実行が完了するのを待ち受けるコードは次のようになります。

asyncな関数orメソッドorアロー関数の中のコード
// ...

const hoge = await (() =>
  new Promise(resolve => {
    setTimeout(() => {
      resolve('hoge')
    }, 2000)
  }))()

console.log(hoge) // 2秒後に hoge が出力される

// ...
18
18
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
18
18