タグ

Promiseに関するjetglassのブックマーク (2)

  • Promiseとリトライとリトライ制御とキャンセル - Qiita

    Promiseで処理が失敗したらリトライしたい Promiseの結果次第でリトライをかけたい場合があります。簡単な実装は以下で、これはググるとすぐに出てきます。 function retry(func, retryCount) { let promise = func(); for (let i = 1; i <= retryCount; ++i) { promise = promise.catch(func); } return promise; } // 失敗時に5回までリトライ retry(() => fetch("url"), 5).then(...) // これは以下と同じ fetch("url") .catch(() => fetch("url")) .catch(() => fetch("url")) .catch(() => fetch("url")) .catch(()

    Promiseとリトライとリトライ制御とキャンセル - Qiita
  • async-awaitでもforEachしたい!

    JavaScript界で非同期処理の切り札的存在となっているasync-await、そして軽やかにループ処理を行っていくforEach。ただ、この2つを合わせて使おうとしたら、うまくいきませんでした。 素直に書いてみる 準備 まずは、非同期実行するもののモデルとして、こんなコードを書いてみます。 const sleep = time => new Promise(resolve => setTimeout(resolve, time)); const sleptLog = async val => { await sleep(1000); console.log('sleptLog', val); }; sleepは単にsetTimeoutをPromise化しているだけで、そしてsleptLogはsleepを使ってasync-awaitでconsole.logを遅らせる、というような処理で

    async-awaitでもforEachしたい!
  • 1