タグ

Promiseに関するigrepのブックマーク (4)

  • Promise.allSettled と Promise.any | blog.jxck.io

    Intro Promise.allSettled() と Promise.any() の仕様策定が進んでいる。 両者は近いレイヤの仕様では有るが、作業の進捗には差がある。 Promise.allSettled は Stage 4 であり、 Chrome や Safari TP には実装もされている Promise.any は Stage 2 であり、実装はまだない ここでは、これらがあると何が嬉しいのかを Promise.all(), Promise.race() の特徴を踏まえて解説する。 Promise.all()/race() Promise.all(), Promise.race() は、いずれも複数の Promise をまとめて処理する Utility Method のようなものである。 all は全ての Promise が Resolve したら Resolve し、 race

    Promise.allSettled と Promise.any | blog.jxck.io
  • Vim script で ES6 Promise 実装した - はやくプログラムになりたい

    Vim Advent Calendar 2017 の19日目の記事です.Vim script で ES6 の Promise を実装した話を書きます. もし Vim script が分からなくても,最後の章「Promise の実装の詳細」は Vim script とは独立した内容になっているので,Promise の実装に興味があれば読んでみてください. TL;DR 実装はこちら Promise とは ES6 (ES2015) で ECMAScript に標準に導入された非同期処理を扱うためのライブラリです. これを使うことにより,「未来のある時点でいずれ値を持つ」値を扱うことができ,ES5 まではコールバックで扱う必要があった非同期処理を逐次処理的な書き方で書きつつ,エラーも一貫した方法で扱えます. 例えば,ネットワークのどこかから取ってきたデータをファイルに保存する処理は,ネットワークか

    Vim script で ES6 Promise 実装した - はやくプログラムになりたい
    igrep
    igrep 2017/12/19
    すげー。
  • Promise でリトライや同時実行数の制御をするやつ作った - ジンジャー研究室

    JavaScript でバッチ実行を少しでも楽にしたいという思いで作ってみた。 www.npmjs.com github.com まだバージョン 0.7.0 だけど、大体のことは出来るはず。 機能 デモ を触ると大体何ができるかわかると思います。 実行間隔の指定 同時実行数の制限 リトライ数の指定 リトライ間隔の調整 失敗したリクエストの返却 動機 DynamoDB への書き込み時に流量を制御しようと色々していて、 Promise が不便だと思った。SDK でもなんか色々パラメータがあると後から知ったのだけど、まぁ Promise が便利になるのに越したことはないということで。もちろん既存のライブラリも沢山探したけど、しっくりくるのが無かった => 作ろう。 API に関しては、シリアライズ可能なデータとしてのリクエストの配列を受け取るようにして、失敗した時に情報を保存したり渡したりできる

    Promise でリトライや同時実行数の制御をするやつ作った - ジンジャー研究室
  • Promise.prototype.finally | blog.jxck.io

    Intro Promise.prototype.finally の仕様が TC39 stage 3 となり、 Safari TP37 で先行実装が入った。 tc39/proposal-promise-finally common task in async task よくあるユースケースとして、 fetch() 中にスピナーを表示し、終わったら消すという場合。 スピナーは、 fetch() が成功(resolve) しようと失敗(reject)しようと消したいため、これまでの Promise では両方のハンドラに処理が必要だった。 showSpinner() fetch() .then((response) => { hideSpinner() console.log(response) }) .catch((error) => { hideSpinner() console.log(er

    Promise.prototype.finally | blog.jxck.io
  • 1