エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
キャンセル可能でPromiseなsetTimeout()を作る - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
キャンセル可能でPromiseなsetTimeout()を作る - Qiita
async/awaitを使ってきちんと非同期処理の実行順序を制御するためには、async関数内で使用するsetTimeou... async/awaitを使ってきちんと非同期処理の実行順序を制御するためには、async関数内で使用するsetTimeout()のようなコールバック関数をPromise化する必要があります。 で、普通にPromise化する分にはいいんですが、clearTimeout()を呼んだときのように、外から実行を中止できるようなPromise関数を作らなければいけなかったのでメモ。 ほぼ以下のパクリですが、いくつか改変しているので、メモっておきます 最終的なコードは以下です function asyncSetTimeout(msec, func = () => {}){ let timeoutId let r const exec = () => new Promise((res) => { r = res timeoutId = setTimeout(async () => { timeoutId