並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 117件

新着順 人気順

promiseの検索結果41 - 80 件 / 117件

  • プログラミングの幅を広げよう!一段上のPromise活用テクニック - ICS MEDIA

    ES2015で登場したPromiseとES2017で追加されたasync/awaitによってJavaScriptのコーディングスタイルは大きく変わりました。Promiseの基本的な使い方を理解していることは「脱初心者」のひとつの指標にもなっているようで、網羅的で優れた解説も数多く存在します。 では、基本をおさえた後の活用方法はどうでしょうか? 実際のところ実務ではライブラリやフレームワークから返却されたPromiseをそのままawaitするだけ…という使い方がほとんどかもしれません。しかし、これらのライブラリやフレームワークの中で利用されているような高度なPromiseの活用法をマスターすれば、もっと自由なプログラミングができるようになります。 この記事ではPromiseを活用した実践的な例を3つ紹介します。いずれもライブラリやフレームワークに類似の機能を持つものはありますが、仕組みを理解

      プログラミングの幅を広げよう!一段上のPromise活用テクニック - ICS MEDIA
    • ブラウザ上のJavaScriptでの非同期処理を、今までどのように実現してきたか 「コールバック地獄」なども乗り越えてきた歴史

      Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。JavaScript編では橘氏が登壇。JavaScriptが疑似的な非同期処理をどう実現しているのかと、JavaScriptの非同期処理の歴史について紹介します。 橘氏の自己紹介 橘ゆう氏(以下、橘):よろしくお願いします。風邪でめちゃくちゃ顔が死んでいるので、カメラオフでいきます。橘です。今日は「JSの非同期処理パターン Promise、async/awaitを理解する」というテーマについて話していきたいと思います。 簡単な自己紹介ですが、もともとDeNAにいて事業統合でそのままGOに移り、今は森下さん(森下篤氏)と同じチームで、主にサーバーサイドやMLOp

        ブラウザ上のJavaScriptでの非同期処理を、今までどのように実現してきたか 「コールバック地獄」なども乗り越えてきた歴史
      • JavaScriptのforEachで非同期処理を逐次実行する方法

        JavaScript の forEach は非同期ではない 時々ネットの解説記事で forEach は非同期だという解説を見かけますがこれは間違っています。実際の処理は逐次関数をコールバックしていくだけなので、普通に同期で動いています。コールバック中に非同期処理を使って待機動作を行っていないので、バラバラに動いているように見えるだけなのです。 検証用の非同期処理を作成 ランダムに 1000ms 以内の時間を待機して文字列を出力する関数です。TypeScript になっているので、JavaScript で実行したい場合は型定義を外してください。 const f = (value: string) => { return new Promise<void>((resolve) => setTimeout(() => { console.log(value); resolve(); }, Mat

          JavaScriptのforEachで非同期処理を逐次実行する方法
        • Promise のキャンセルについて - Qiita

          [ English version ] JavaScript と Node.js についてのこの徹底した投稿では、Promises のキャンセルの歴史、なぜNode.jsに関係があるのか、そして async/await APIで使おうとしたときに注意すべきことについて学ぶことができます。 この投稿は、JavaScript の Promise API をよく理解していて、 Node.js の経験がある方のためのものです。 歴史 2014 年に Promise API がブラウザに導入されて以来、人々は Promise で他に何ができるかを調べていました。ブラウザに最初に登場した関連APIは、HTTP リクエストのための fetch() でした。 HTTP リクエストの問題は、サーバーのリソースを消費することであり、サーバーに送信されるリクエストの数が多い場合はお金がかかります。このため、特に

            Promise のキャンセルについて - Qiita
          • ReactのSuspenseで非同期処理を乗りこなす

            Reactはどちらかというと非同期処理が苦手な部類でした。今まではReduxのmiddlewareを駆使したり、Hooksを上手く使ったりして乗り切っていました。 そこで以前よりSuspenseという機能の実装が進んでいます。Suspenseはまだ世間に浸透しきっていない機能ですが、Reactの世界を大きく変える可能性があります。そんなSuspenseについて、軽く覗いてみましょう。 Suspenseの世界 Reactで非同期処理を綺麗に扱うのは簡単なことではありません。redux-sagaを使うにせよ、useEffectを使うにせよ、大きな痛みを伴います。 そもそもReactはアプリケーションのUI層を担当するライブリラリです。本来果たすべき責務に注力できず非同期処理のような些事に気を取られ、あろうことか非同期処理がReactアプリケーションの設計に大きな影響力を持ち始めるというのは、望

              ReactのSuspenseで非同期処理を乗りこなす
            • 動画で分かる!ブラウザと Node.js の Event Loop 解説

              Event Loopってみなさん聞いたことありますか? 「うん、なんか聞いたことありますが、よくわからないな・・・」や「分かりそうで、分からないな・・・」って思ってる方がいますかね? 長文ではありますが、Event Loop というものを改めて理解してみましましょう! まずこのコードの実行結果を考えてみましょう。 console.log('1') setTimeout(function callback(){ console.log('2') }, 1000) new Promise((resolve, reject) => { console.log('3') resolve() }) .then(res => { console.log('4'); }) console.log('5') 答えを分かりますでしょうか?正解はこの後記事内で公開します。 JavaScript 実行の仕組み

                動画で分かる!ブラウザと Node.js の Event Loop 解説
              • TypeScriptの`infer`を一撃で理解する - reosablo.blog

                準備運動 たとえば「Foo型要素を持つ配列」や「Foo型でfulfillされるPromise」、「Foo型のプロパティ"abc"を持つオブジェクト」の型を定義しようとすると下記のようになる。 type FooArray = Foo[]; type FooPromise = Promise<Foo>; type FooContainer = { abc: Foo }; この記事にたどり着いた人であればここまでは理解できるはず。 inferの使いどころ では逆に、「何かの型を持つ配列」や「何かの型でfulfillされるPromise」、「何かの型のプロパティ"abc"を持つオブジェクト」の「何かの型」を得たい場合はどうするか。 ここでinferの出番となる。 // 注意: このコードは型安全ではありません。 type ArrayOf<T> = T extends (infer U)[] ? U

                  TypeScriptの`infer`を一撃で理解する - reosablo.blog
                • Node.js v15ではunhandled rejectionでプロセスがエラー終了する

                  今月20日にInitial Releaseが予定されているNode.js v15ですが、ここでのunhandled rejectionの挙動変更について解説します。 unhandled rejectionとは async関数内でthrowされたエラーや、rejectされたPromiseが、.catch()などでハンドリングされずにrejectされたままになっている状態を、unhandled rejction(またはunhandled promise rejction)と呼びます。Node.js v14では、unhandled rejectionが発生すると次のような警告が出力されます。 $ node -e "Promise.reject()" (node:22145) UnhandledPromiseRejectionWarning: undefined (Use `node --trac

                    Node.js v15ではunhandled rejectionでプロセスがエラー終了する
                  • 非同期と並列 / morrita - Message Passing

                    karino2 が 並列プログラムから見たFuture というビデオを作って公開していたので、引っ越しの荷造りをしながら眺めた。 長いのでここにざっくりとした主張をまとめると: Future/Promise (およびその後釜の async/await) は非同期プログラミングで callback hell にならない発明という見方をされているが、 そもそもなぜ callback hell が必要だったかの時代背景が十分に理解されていない。 背景の一つはブラウザ JavaScript のプログラミングモデルにシングルスレッド・ノンブロッキング(イベントループ)という制限があったから。 これは(特にフロントエンド開発者の間では)よく理解されている。 もう一つの視点は SEDA みたいなマルチスレッド・ノンブロッキング環境の必要性で、 こっちはいまいち広く理解されていないように思える。 結果とし

                      非同期と並列 / morrita - Message Passing
                    • Unhandled Rejection の考え方 - from scratch

                      はじめに twitter 上で議論になっていたネタを本人の許可を得て記載しています。 Node.js でだけ発生する非同期関連の謎現象を発見した🤔 複数回連続で、非同期処理を挟んだ関数から返した非同期関数を、非同期に実行すると allSettled で待ち受けされずにその場で例外が発生する。 これはバグなのかな...https://t.co/w5C9wKEAOA pic.twitter.com/y3pz4ajndF— shqld🦭 (@shqld) January 4, 2022 実はこの話は会社の中でも一回議論になったネタなんですよね。僕も microtask と呼ばれる Promise キューイングの仕組みとイベントループでタスクをハンドリングする仕組みの両方が組み合わさった時に Unhandled Rejection が起きる理由がわかりにくくなるなーと思っています。誤解していた

                        Unhandled Rejection の考え方 - from scratch
                      • ラーメンで理解するasync/await - Qiita

                        JavaScript 2 Advent Calendar 2019 の19日目の記事です。 (19/12/23 10:41追記) Promise.allについて最後に追記しました。 対象 async/awaitがなんだかはある程度知ってる人 async/awaitをなんとなくで使ってる人 そもそもasync/awaitって? async/awaitは、Promiseによる非同期処理をより簡潔に効率よく記述できる手法。 普通にPromiseを使うとネストが深くて辛くなるのを救ってくれる。 「async/await Promise」で検索すれば比較についてはたくさん出るので今回は書かない。 便利だから全部async/awaitにしちゃおう! って思うんですけど、実は罠があって。 ちゃんと気をつけないと非効率な感じになっちゃうよっていうのが今回のお話。 ただ、コードを並べて説明してもよくわからな

                          ラーメンで理解するasync/await - Qiita
                        • Node.jsでUnhandled Rejectionsのときにexis statusが0となる問題を回避する

                          Node.jsでUnhandled Rejectionsが発生してprocessが終了すると、Exit Statusが0となる問題とその対策についてのメモです。 追記: Node.js 15+からUnhandle Rejectionが発生するとプロセスがExit Status 1で終了する動作がデフォルトとなりました Node.js v15ではunhandled rejectionでプロセスがエラー終了する 事前知識: Async FunctionはPromiseを返す関数定義です。 その辺について詳しくは次のサイトを読んでください。 JavaScript Promiseの本 非同期処理:コールバック/Promise/Async Function · JavaScript Primer #jsprimer 今回のサンプルコードは次のリポジトリにあります。 azu/unhandled-rej

                            Node.jsでUnhandled Rejectionsのときにexis statusが0となる問題を回避する
                          • ReactのSuspenseを使った非同期処理のエラーハンドリング

                            「フロントエンドLT会 - vol.8」で発表したスライドです。 https://rakus.connpass.com/event/255095/

                              ReactのSuspenseを使った非同期処理のエラーハンドリング
                            • 【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへ - Qiita

                              【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへJavaScriptNode.js初心者向け 非同期処理は最近のフロントエンド開発において、もはや必須ともいえるようになってきました。 WebAPIに対して問い合わせる際や、ファイルを読み込む処理などJavaScriptではいたるところで非同期処理を実装する機会があります。非同期処理にすることでパフォーマンスを向上するようにNode.jsが設計されていることもあるのですが、同期的な処理を得意とする言語ばかり書いてきた人からするとどうしてもJavaScriptの非同期処理は受け入れづらいところがあるようです。 今回はJavaScriptの非同期処理として実装される3パターンを理解してみましょう。 コールバックによる実装とその地獄 コールバック地獄を解決するPromiseによ

                                【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへ - Qiita
                              • ES2021に対応したJavaScript Primer 3.0を公開しました - JavaScript入門

                                JavaScript入門書のJavaScript Primerのウェブ版をアップデートして、2021年の最新の仕様であるES2021に対応しました。 JavaScript Primerのウェブサイトから閲覧できます。 ウェブサイト: https://jsprimer.net/ リリースノート: Release 3.0.0: ECMAScript 2021対応 · asciidwango/js-primer 対応のサマリIssue: ES2021の対応 · Issue #1220 · asciidwango/js-primer JavaScript Primerについて JavaScript Primerは、これからJavaScriptを学びたい人が、ECMAScript 2015以降をベースにして一からJavaScriptを学べる書籍です。 ECMAScriptの仕様は毎年アップデートされ

                                  ES2021に対応したJavaScript Primer 3.0を公開しました - JavaScript入門
                                • addEventListenerでリッスンしているイベントをPromise化する

                                  概要 addEventListenerはブラウザ組み込みのAPIの中でも最もよく使われるメソッドの中の一つだと思います。このメソッドはぱっと見で処理がわかりにくく引数にコールバック関数を取るため、初心者の頃に物凄く読みにくいコードを書いた人も多いのではないでしょうか? addEventListenerが読みにくくなってしまう簡単な例を挙げます。以下のコードのようにAというイベントが発生しないとBというイベントを購読する処理をかけないといったイベント間に依存関係がある場合は、処理が増えるにつれ直感的なコードを書くことが難しくなっていくと思われます。 // <body>より上の位置で<script>にdefer属性なしで書かれてあると思ってください。 document.addEventListener("DOMContentLoaded", () => { console.log("DOMCo

                                    addEventListenerでリッスンしているイベントをPromise化する
                                  • Top-level await · V8

                                    Top-level await enables developers to use the await keyword outside of async functions. It acts like a big async function causing other modules who import them to wait before they start evaluating their body. The old behavior #When async/await was first introduced, attempting to use an await outside of an async function resulted in a SyntaxError. Many developers utilized immediately-invoked async

                                    • JavaScriptの非同期処理を理解する その1 〜コールバック編〜 | さくらのナレッジ

                                      こんにちは!小田島です。コロナ第二波が来ましたが、もともと出不精気味なので個人的にはあまり影響はありません。むしろ外出しない理由ができて堂々と引きこもっていられます。 これまで、さくらのナレッジではNode.jsやDenoの話をしてきました。今回は、これらを使う上で欠かせない非同期処理について説明します。よろしくお願いします! 対象者 本記事は、こんな人が対象です。 JavaScriptの非同期処理はコールバックとかPromiseとかasync/awaitとかあるけど、どう違うの?どう使い分ければいいの? Node.jsのコールバックって罠が多くて使いにくい Promiseの仕組みがよくわからずになんとなく使っていた async/awaitって中でどういうことをやってるのかわからないけど便利だよね 非同期処理?async/awaitさえ覚えておけばいいんじゃない? async/awaitっ

                                        JavaScriptの非同期処理を理解する その1 〜コールバック編〜 | さくらのナレッジ
                                      • simple-gitを使ってみたら便利だった | DevelopersIO

                                        simple-git を使って、TypeScript による自動化事例を記事に致しましたが、TypeScript による cli のフレームワークを主に説明していたり、方向性が微妙なポストだなぁと反省…。 こんにちは、高崎@アノテーション です。 はじめに 我々が行っている作業におきまして、手動でファイルを更新することや環境を整備することは少なくありません。 以前から手を抜いて少ない工数で効率よく、かつ人為的ミスを削減することを生き甲斐としておりまして、手動でファイル操作をするものがあれば、以前ですと Linux のターミナル上で作業していたこともあり bash シェルで自動化を行う方法はないか、を常に考えていました。 ファイルの変化を見る場合はgitを使ってローカルでリポジトリを組んでみたり、結果の文字列を捏ねて諸々処理する時には、シェルを実装するに当たって欠かすことのできないawkやs

                                          simple-gitを使ってみたら便利だった | DevelopersIO
                                        • JavaScriptでScalaのFutureを表現する

                                          はじめに Scala.jsというプロジェクトがあります。 Scalaで書いたプログラムをJavaScriptに変換する、とてもクールなツールです。 ただ、もちろん言語自体が違うため、完全なマッピングが可能な訳ではありません。ベストエフォートでセマンティクスを維持したままJavaScriptに変換しますが、いくつか対応付けが困難なケースがあります。 その中でも特にScalaの Future をJavaScript上でどのように表現するか? という点に関しては、JavaScriptの深みを知れるとても良い題材だと思ったので、まとめてみようと思います。 ※ 一応Scala.jsをネタに出してますが、Scalaを知らなくても理解できるように書いたつもりです。 ScalaのFuture Scalaには並列処理を行うためのデータ型として Future があります。 Future は、ある時点において利

                                            JavaScriptでScalaのFutureを表現する
                                          • 【ES6】 JavaScript初心者でもわかるPromise講座 - Qiita

                                            はじめに Promiseって...難しくないですか??? 3ヶ月くらい前の私は、Promiseをほとんど理解できてないのにasync/awaitとか使っちゃってたし、様々な記事を読み漁ってもなかなか理解できず、Promiseの正体を掴むのに時間がかかってしまいました。 そんな3ヶ月くらい前の自分にも伝わるように、できる限り丁寧にPromiseを説明していこうと思います。 前提 本記事では、Promise以外のES6の書き方に関しては触れておりません。 アロー関数やテンプレート文字列などを例文で用いているため、わからない方がいましたら下記記事などを参考にしていただけると幸いです。 ES2015(ES6) 入門 Promiseとは JavaScriptは処理を待てない! まずはじめに、下記コードを実行してみると、どのような結果になるでしょうか。 console.log("1番目"); // 1

                                              【ES6】 JavaScript初心者でもわかるPromise講座 - Qiita
                                            • Edge/ARM64の出来をみると、Windows on ARMのx86エミュレーターは結構速い

                                              Life with Web Browser Engine (Gecko, WebKit and etc), Mobile and etc. WebCrypto APIのベンチマークというのは結構難しくて、そもそも現在のWebCrypto APIはPromiseベースの実装のため、下手をするとWebブラウザに実装されたマイクロタスクをテストするだけのものになることもある (≒なのでベンチマークを取るとったとしても正確なデータかというと、、、な時がある。WebCryptoを使ったベンチマークを説明する時にPromiseの話を触れない人は正しいマイクロベンチマークを書くことが出来ない人なのかもしれない)。Promiseで結果を返すようなAPIはベンチマークが正しい結果を出すとは限らないのだが、それを抜きにしても面白いデータが取れたのでここに書いておく。 jsperf.comに簡単なWeb Cry

                                                Edge/ARM64の出来をみると、Windows on ARMのx86エミュレーターは結構速い
                                              • GitHub - alesgenova/post-me: 📩 Use web Workers and other Windows through a simple Promise API

                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                  GitHub - alesgenova/post-me: 📩 Use web Workers and other Windows through a simple Promise API
                                                • PromiseによるJavaScript非同期処理レシピ集

                                                  Promiseの概念はずいぶん浸透してきました。Promiseは単なる「新機能」のひとつから、もはや非同期処理における基本となりました。有志のライブラリなどもPromiseを返すのが当たり前になってきていて、コールバックでの処理はオプションであることが多くなりました。 さて、そうなってくるとPromiseの概念がどうこうというよりも、実用的なケースに対するコードスニペットがほしくなってきます。そこで今回の記事では、よくあるケースに対しての具体的解決策をいくつか提示します。 この記事について この記事では、JavaScript初心者に向けた、実用的な観点に焦点をあてて説明します。よっていつもの記事ほど正確性や厳密性はありません。 Promiseの「仕様」について詳しく知りたい場合は、MDNを読むなり、仕様書を読むなりしてください。 世界はPromiseに染まった Promise!Promis

                                                    PromiseによるJavaScript非同期処理レシピ集
                                                  • AbortSignal.any(), AbortSignal.timeout(), そして addEvnetListener() の Signal | blog.jxck.io

                                                    Intro 最近 AbortSignal.any() が提案され、急速に実装が進んでいる。 すでに定義されている AbortSignal.timeout() や addEventListener() への Signal なども含め、非同期処理の中断を実装する際の API はかなり整備されてきた。 これら API のモチベーションと設計を中心にまとめる。 Abort 後のリソース解放 AbortSignal によって、非同期処理のキャンセルが可能になった。例として、 Server 上での Fetch のタイムアウトの例を考えよう。 app.get("/entries", async (req, res) => { const perRequestController = new AbortController() const perRequestSignal = perRequestCont

                                                      AbortSignal.any(), AbortSignal.timeout(), そして addEvnetListener() の Signal | blog.jxck.io
                                                    • async-singleton - 橋本商会

                                                      promiseのthrottleとかdebounceするやつなんだけど、そのへんの名前がnpmに空いていなかった

                                                        async-singleton - 橋本商会
                                                      • JavaScript/TypeScript で Promise を直列実行できるが、結局どう実装すればよいのか?(可読性・実行速度) - Qiita

                                                        単位は byte es2016以下の場合 async/await を使用した場合、トランスパイルで polyfill が挿入される よって、 async/await を使用しなければ、polyfill 分のサイズを削減できる ただし、その他の実装でも一切 async/await 使ってない場合に限る src全体で見て、他の実装で async/await を使っている場合、その実装のために polyfill が挿入される そのため、直列実行の実装を工夫しても polyfill 分のサイズは必ず増える es2017以上の場合 いずれの実装も、polyfillは挿入されない よって、書いたコード分のファイルサイズになる 所感 まぁ、妥当な結果 ベンチマーク 各 target の出力結果の JavaScript を実行 1 スレッド、100 Promise の直列処理 * 5 回計測の平均 es5

                                                          JavaScript/TypeScript で Promise を直列実行できるが、結局どう実装すればよいのか?(可読性・実行速度) - Qiita
                                                        • コンストラクタの外からresolve/rejectを呼ぶPromsieテク

                                                          Promsie を作って返す関数で、Promise コンストラクタの引数のコールバックではないところで resolve とか reject とかしたいことがある。 こんな感じで、外部に変数を作って普通に代入して外から resolve/reject を呼べるテクがある。 function registerSomething() { let resolve, reject; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); something.registerSomething((error, info) => { if (error) reject(error); resolve(info); }) return promise; } まあ実際には、上記コードくらいだったら普通にコンストラ

                                                            コンストラクタの外からresolve/rejectを呼ぶPromsieテク
                                                          • Introducing the WebAssembly JavaScript Promise Integration API · V8

                                                            The JavaScript Promise Integration (JSPI) API allows WebAssembly applications that were written assuming that access to external functionality was synchronous to operate smoothly in an environment where much of the desired functionality is asynchronous. This note outlines what the core capabilities of the JSPI API are, how to access it, how to develop software for it and offers some examples to tr

                                                            • nextTick vs queueMicrotask vs Promise.resolve vs setTimeout - Qiita

                                                              はじめに 普段の開発でなかなかお目にかかることも使うことも滅多にない queueMicrotask について興味を持ったついでに、 process.nextTick や Promise, setTimeout などとの比較をしてみました。 TL;DR 下記の優先度順でキューからタスクが取り出され処理される。 nextTick queueMicrotask, Promise.resolve → Microtask setTimeout → Task (a.k.a. Macrotask) より具体的には、MicrotaskキューとTaskキューの2つのキューがあり、Microtaskキューが優先的に処理されるようになっている。 Microtaskキューが空でない限りはTaskキューの中身を実行しない構造となっており、queueMicrotask, Promise.resolve では Micr

                                                                nextTick vs queueMicrotask vs Promise.resolve vs setTimeout - Qiita
                                                              • ブラウザのアイドル中にJavaScriptを実行する良い感じのOSSを公開した

                                                                こんにちは。ぬこすけです。 console.log や setTimeout など、ブラウザにはたくさんの機能が備わっています。 そのうちの 1 つに requestIdleCallback というものがあります。 requestIdleCallback については上の記事で詳しく解説していますが、簡単に説明すると「ブラウザが暇な時に JavaScript の処理を実行させられる」というのが requestIdleCallback です。 requestIdleCallback により、ブラウザが暇な時に JavaScript の処理を回すことでパフォーマンス最適化ができるのです。 この requestIdleCallback をより使いやすくした idle-task という OSS を公開しました。 idle-task の特徴 idle-task には次の 4 つの特徴があります。 タス

                                                                  ブラウザのアイドル中にJavaScriptを実行する良い感じのOSSを公開した
                                                                • Async/await

                                                                  “async/await” と呼ばれる、より快適に promise を利用する特別な構文があります。驚くほど簡単に理解し、使用することができます。 Async 関数async キーワードから始めましょう。次のように関数の前に置くことができます:

                                                                    Async/await
                                                                  • awaitできるsetTimeoutを1行で書く方法 - Qiita

                                                                    await new Promise(resolve => setTimeout(resolve, 3000)) // 3秒待つ // ... 3秒後の処理 ... // よくある長めの実装 const sleep = () => new Promise(resolve => { setTimeout(() => { resolve() }, 3000) }) await sleep() // ステップ1: () => { resolve() } は resolve に短縮する const sleep = () => new Promise(resolve => { setTimeout(resolve, 3000) }) await sleep() // ステップ2: resolve => {} は resolve => に短縮する const sleep = () => new Prom

                                                                      awaitできるsetTimeoutを1行で書く方法 - Qiita
                                                                    • Node.jsのバージョンを16に更新した時にはまってしまったこと - RareJob Tech Blog

                                                                      はじめに こんにちは。APP/UXグループの大谷と申します。 寒くなってきてグラコロが美味しい季節ですね。年がわりで発売されるデミグラスソースがかかっているバージョンより、ノーマルバージョンのグラコロが個人的には好みです。 バージョンといえば先日Node.jsのバージョンを更新した際に困ったことについて書いていきたいと思います。 何が起きたか 弊社では一部の機能の画面をNuxtを使って提供しており、server middlewareをBFFとして利用しAPIリクエストはserver middlewareを経由して投げられています。 (詳しい構成についてはこちらの記事に添付の資料をご参照ください) 今回はNode.jsのバージョンを v12 → v14 → v16に段階的に更新する作業をおこなっていました。(バージョンが一部歯抜けになっているのは依存関係の解消の関係でやりやすかったバージョン

                                                                        Node.jsのバージョンを16に更新した時にはまってしまったこと - RareJob Tech Blog
                                                                      • 14 Linting Rules To Help You Write Asynchronous Code in JavaScript

                                                                        Debugging asynchronous code in JavaScript can feel like navigating a minefield at times. You don't know when and where the console.logs will print out, and you have no idea how your code is executed. It's hard to correctly structure async code so it executes in the right order as you intend it to. Wouldn't it be nice if you had some guidance while writing asynchronous code, and to get a helpful me

                                                                          14 Linting Rules To Help You Write Asynchronous Code in JavaScript
                                                                        • Promiseとthenのメソッドチェーン(直列・並列・値の受け取り・引数) - Qiita

                                                                          はじめに Promiseの基本とthen()を使ったメソッドチェーンの使い方で、以下を中心にまとめています。 複数の非同期処理を順番に実行したい(直列)、同時に実行したい(並列) Promiseの直列処理で、複数の値を受け取りたい then()を使ったメソッドチェーンで、関数の呼び出しに引数を渡したい これからPromiseを使いたい人の参考になれば幸いです。 Promiseとは 非同期処理の結果を、成功(resolve) または、失敗(reject)で返すオブジェクトです。 Promiseを使用すると、以下のような非同期処理を簡潔に書けます。 非同期処理の成功、失敗の処理を分岐する。 複数の非同期処理を順番に実行したり、並行して実行する。(直列・並列) Promiseの基本 new Promiseでインスタンスを生成して使用します。 Promiseの引数には関数を指定し、その関数内に実行

                                                                            Promiseとthenのメソッドチェーン(直列・並列・値の受け取り・引数) - Qiita
                                                                          • 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を完全に理解する
                                                                            • async/await を完全に理解する

                                                                              この記事ではasync/awaitについて完全に理解する[1]ことを目標に説明します。 完全に理解するために一部厳密には正確ではない表現をしますがご了承ください。 (明らかに事実と異なる内容が含まれている場合はご指摘いただけると助かります) ちなみにC#の文法説明になりますが、他の言語でも基本的な考え方は同じはずです。例えばJavaScriptの場合はTask型をPromise型に置き換えていい感じに読んでください。 非同期処理とTask型 async/awaitを完全に理解するためには、非同期処理の扱い方について完全に理解する必要があります。 そもそも非同期処理って何?という方はググってください。同期処理と非同期処理の違いについては完全に理解した前提で説明します。 非同期処理は複数のタスクを同時並行に処理するためのものですが、実際にコードを書いていると非同期で処理しているタスクが終わるま

                                                                                async/await を完全に理解する
                                                                              • GitHub - sindresorhus/p-state: Inspect the state of a promise

                                                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                  GitHub - sindresorhus/p-state: Inspect the state of a promise
                                                                                • 【JavaScript】 async/await で非同期処理をわかりやすく記述する – 株式会社ライトコード

                                                                                  async/await という仕組み 本記事では、 JavaScript の非同期処理を扱うための async/await という仕組みについて取り上げます。 async/await は、 Promise を利用した非同期処理をよりわかりやすく記述できます。 本題へ進む前に Promie の復習をしておきましょう! Promise の復習async/await は、 Promise の仕組みを利用しているため、Promise への理解が大切だからです。 非同期関数を作成するときに Promise が利用できます。

                                                                                    【JavaScript】 async/await で非同期処理をわかりやすく記述する – 株式会社ライトコード

                                                                                  新着記事