タグ

promiseに関するdmizuno55のブックマーク (5)

  • [JavaScript] forEachでasync/awaitは使える

    JavaScript の forEach で async/await は使える JavaScrript の forEach で async/await が使えないという誤解が一部あるようですが、全く問題なく使えます。そういう誤解が何故発生してしまうかと言えば、非同期を同期させるための管理を行っていないからです。プログラムは思った通りではなく書いたとおりに動きます。同期させるようにプログラムを書かなければ、その通りの結果が返ってきます。使えないのではなく使っていないのが原因です。 forEach で非同期を同期させるプログラムを作る 配列の内容を 1 秒ごとに一つ表示させるプログラムを forEach で作ってみます。 こちらに実行環境を用意しました プログラム内容 // 疑似セマフォによるスケジューラ const semaphore = ( limit = 1, count = 0, rs

    [JavaScript] forEachでasync/awaitは使える
  • PromiseのUnhandled Rejectionを完全に理解する

    最近リリースされたNode.js 15ではデフォルトの設定が変更され、Unhandled Rejectionが発生した際にプロセスが強制終了されるようになりました。 では、Unhandled Rejectionがいつ発生するのか正確に説明できますか? この記事では、Unhandled Rejectionに対する正確な理解を目指します。 ECMAScript仕様書で確かめる こういう場合に頼りになる唯一の情報源はECMAScript仕様書、つまりJavaScriptの言語仕様を定める文書です。この記事ではES2020の仕様書を参照します。 仕様書を"unhandled"で全文検索すれば、目的の記述を見つけるのはそう難しいことではありません。それは25.6.1.9 HostPromiseRejectionTrackerです。 これは抽象操作 (abstract operation) です。抽象

    PromiseのUnhandled Rejectionを完全に理解する
  • util.promisify が追加された - from scratch

    Node.js のコアに util.promisify が追加された。 github.com 今回は util.promisify が持つ役割を中心に Node.js における Promise の立場についても話していけるといいと思う。 util.promisify とは 読んで字のごとく関数を Promise に変換してくれるユーティリティメソッド。 下記のような要領で変換できる。 const util = require('util'); const fs = require('fs'); const stat = util.promisify(fs.stat); stat('.').then((stats) => { console.log(stats); }).catch((error) => { console.error(error); }); async-awaitを使いたい

    util.promisify が追加された - from scratch
  • async/await 入門(JavaScript) - Qiita

    はじめに 今更ですが、JavaScriptのasync/awaitに関する備忘録になります。 「今まで$.Deferred()やPromiseなどで非同期処理は書いたことがあるが、async/awaitはわからない」 「$.Deferred()やPromiseなどの非同期処理の書き方より、もっと簡潔に書ける書き方があれば知りたい」 「今までの非同期処理の書き方と比べて何が良いのかわからない」 といった人達向けの記事です。 $.Deferred()やPromiseなどで非同期処理を書いたことがある前提のため、非同期処理自体に関する説明は記載しておりません。 記載している利用例のコードはChrome(最新)のコンソール上で動きますので、コンソール上で実行して動作を確認してみると理解が深まりやすいと思います。 記事で用いている用語 Promiseを返す Promiseオブジェクトを返すこと。

    async/await 入門(JavaScript) - Qiita
  • for文の中で非同期関数を使いたいときでも慌てずPromiseする - Qiita

    for (var i = 0; i < takusan; i++) { omotai(i, function () { おやっ? }); } これコールバックの中のものどうやって取るんだ?(だいたい無理) Promiseが使える環境なら、迷わず書けます。 予めPromise化しておくと便利です。bluebirdなどPromise化を助けてくれるライブラリを使うのもいいでしょう。 function omotaiPromise(arg) { new Promise(function (resolve, reject) { omotai(arg, function (err, result) { if (err != null) { reject(err); return; } resolve(result); }); }); }

    for文の中で非同期関数を使いたいときでも慌てずPromiseする - Qiita
  • 1