並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 175件

新着順 人気順

awaitの検索結果1 - 40 件 / 175件

  • Hideyuki Tanaka on X: "https://t.co/C8laA40N09 スレッドはasync/awaitよりも単純だし、async/awaitでできることはスレッドでもできるのに、なんでわざわざ複雑なものを選ぶ必要があるのか?というRustコニュニティーでもよく見かける質問に対するわかりやすい解説記事"

    • Why choose async/await over threads?

      A common refrain is that threads can do everything that async/await can, but simpler. So why would anyone choose async/await? This is a common question that I’ve seen a lot in the Rust community. Frankly, I completely understand where it’s coming from. Rust is a low-level language that doesn’t hide the complexity of coroutines from you. This is in opposition to languages like Go, where async happe

        Why choose async/await over threads?
      • async/await 比較(C#, JavaScript, Python) - Qiita

        using System.Windows.Threading; Dispatcher.CurrentDispatcher.InvokeAsync(async () => { // いろいろな処理... // メッセージループを終了させる Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Normal); }); Dispatcher.Run(); WPF とか WinForms とかでは、フレームワークがすでにメッセージループを回しているので、自分で Dispatcher.Run() する必要はない。 JavaScript 自分で書く必要なし。 Python asyncio.run(最初に実行するasync関数)

          async/await 比較(C#, JavaScript, Python) - Qiita
        • TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて

          CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

            TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて
          • TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて

            本連載の趣旨 本連載は、TypeScriptのアップデートを紹介する連載です。 TypeScriptは、その登場以来、順当にバージョンアップを重ね、現在(原稿執筆時点)5.2が最新となっています。各バージョンアップでは、性能改善に関するアップデートが主なものもあれば、大きな機能追加が施されたものもあります。 本連載では、これらのアップデートの内容のうち、バージョン3から5.2までに施されたものを整理し、テーマごとに紹介していきます。具体的には、以下のテーマを予定しています。 タプルに関するアップデート 型システムに関するアップデート 型の絞り込みに関するアップデート クラス構文に関するアップデート デコレータに関するアップデート 第1回目である今回は、上記テーマに含まれていないもので重要なアップデートを取り上げます。これらは、ひとつのテーマで連載1回分の内容にはならないものを、詰め合わせセ

              TypeScriptの変更点まとめ ──新しい演算子・トップレベルawait・usingについて
            • async/awaitは今後もベストフレンドであり続けるか - hadashiA

              えーあーー みなさん聞こえますでしょうか。この記事はC# アドベントカレンダー17日めのために書かれました。 いくつかみかけた、async/await と java loom/goroutine的なものを比較する議論に興味があり、少し追ってみた感想です。実装まで深く調べられてません。 TL;DR Green Thread Experiment Results #2398 .NET の runtimelabにて、async/awaitの代替としてのグリーンスレッドを検証した結果が公開されていたが、今後も async/await でいくという結論になっている。 JVM (Java) は対象的に、コードの書き方をなにも変えなくてもランタイムが自動的にI/Oを非同期にしてくれる夢のVirtual Thread を導入した。 Rust界隈では「Why async/await ? why? why?

                async/awaitは今後もベストフレンドであり続けるか - hadashiA
              • The await event horizon in JavaScript

                The await event horizon in JavaScriptCharles Lowell December 11, 2023 javascriptstructured concurrency There is a boundary around every black hole where the velocity required to escape its gravitational pull exceeds the speed of light. Once anything, including light itself, passes over that threshold, it is trapped inside the mysterious interior of the black hole forever. There is no escape, and t

                  The await event horizon in JavaScript
                • How async/await works internally in Swift

                  async/await in Swift was introduced with iOS 15, and I would guess that at this point you probably already know how to use it. But have you ever wondered how async/await works internally? Or maybe why it looks and behaves the way it does, or even why was it even introduced in the first place? In typical SwiftRocks fashion, we're going deep into the Swift compiler to answer these and other question

                    How async/await works internally in Swift
                  • Task/ValueTask を直接返せる場合でも原則非同期メソッド (async/await) にしたほうが良い

                    ユーザーコードでは Task/ValueTask (ジェネリック版含む) を直接返すことが可能の場合でも原則として非同期メソッドにして await することをおすすめします。 原則として、というのはこの記事で紹介するようなポイントを理解した上で最適化のために行うのは良いのですが、ユーザーコードでは落とし穴にハマるのを避けるためにほとんどのケースで素直に非同期メソッドにした方がよい、という話です。 Task/ValueTask を直接返す、返さないとは そもそも Task/ValueTask をそのまま返すコードというのはどういうものかというと、次のようなコードです。 public async Task Main() => await NantokaAsync(); public ValueTask NantokaAsync() { // 非同期を必要としない WriteAsync を呼び出

                      Task/ValueTask を直接返せる場合でも原則非同期メソッド (async/await) にしたほうが良い
                    • Internals of async / await in JavaScript | Akash Hamirwasia

                      Internals of async / await in JavaScriptJuly 2, 2023 •11 min read If you have ever used JavaScript in the past, there is a high chance you have encountered the async / await syntax. async / await makes it easy to define asynchronous logic in a synchronous way that our brains can comprehend better. Some of you JavaScript veterans might know that async / await is merely a syntactic sugar over the ex

                        Internals of async / await in JavaScript | Akash Hamirwasia
                      • async/awaitにおけるエラー処理を実行の順番から整理する - Qiita

                        はじめに promiseを使うとき、いつもpromiseメソッドチェーンで記載していますか? async/awaitを利用していますか? もちろん状況によって両方書くのが殆どだとは思うのですが、私はasync/awaitの方が同期的な書き方ゆえに読みやすいため、なるべくそちらで記載しています。しかしながら、エラーハンドリングが理解できていなかったため、エラーの所在を突き止めるのに苦労してしまいました。 そのため、これを機にasync/awaitにおけるエラーハンドリングについて備忘録的にまとめておきます。 この記事のまとめ; catchされるエラーはrejectのみか、throwされたエラーも含まれるか →両方catchできる async関数における処理の順序、awaitがある場合とない場合 →awaitがない場合には同期的に処理が実行され、catchできなくなる エラー処理を外側に伝播し

                          async/awaitにおけるエラー処理を実行の順番から整理する - Qiita
                        • 【JavaScript】async/awaitとaxios、非同期通信について - Qiita

                          axiosとは HTTP通信(データの更新・取得)など、HTTPリクエストのやり取りを簡単に行うことができる、JavaScriptのライブラリです。Node.jsで記述されています。APIを提供するクラウドサービスに対して、データを送受信することができます。 非同期にHTTPメソッド(GET・POST・PUT・DELETE通信など)を取り扱えます。 非同期処理とは 時間の掛かる処理の結果を待たずにすぐ次の処理を実行できる仕組みです。Promiseを使うと簡単に実現できます。 Promiseとは、非同期処理の状態を監視するためのオブジェクトで、非同期処理を同期処理のように扱える書き方です。 使う場面 JSONデータを提供しているAPIと接続して、データを取得することが多いです。 Webの場合、サーバーの中で外部にデータを提供している機能(またはそnページ)のことをAPIとよびます。 asyn

                            【JavaScript】async/awaitとaxios、非同期通信について - Qiita
                          • 【ChatGPT】と話して学ぶ、【asyncとawait】 - Qiita

                            本記事を書くきっかけ 実務に入る前に、Webアプリケーション開発の基礎の勉強をさせていただいたので、その知見の共有として。特に今回はChatGPTとの対話を通して、"文量多めの読み物っぽい"記事を目指しています。箇条書きより一連の文章の方が好みの方におすすめ。 asyncとawaitについて 「非同期処理」「待機する」といったキーワードはなんとなく覚えていたものの、説明ができなかった「async」と「await」。FEだったら避けては通れないよ!と先輩社員からもお声をいただきましたざっくり言うと asyncで非同期的な処理をして、awaitでその中で待機しなければならない内容を書いている そうです。実際に使うと、asyncの中のawaitがついている部分は完了までその後の処理が止まっているのがわかります。 ではここで早速、ChatGPTに 「サンプルコードで説明して」 とお願いしてみます。

                              【ChatGPT】と話して学ぶ、【asyncとawait】 - Qiita
                            • 「Reactでawaitしたら壊れた」「Reactでawaitしたら壊れた」 ~ useEffectの誤用と2回実行 ~ - Qiita

                              ※ 小説です。続き物ではないですが一応前回はこちら ※ 読むとReactで非同期処理が書きやすくなるかもしれません。 ※ Reactの知識が前提になります、ご了承ください。RustやTauriの知識は一切不要です。 本記事で伝えたいこと 「Reactで非同期処理を扱いたいから useEffect 」 → 安直すぎる データフェッチ系の処理 → クリーンアップを設定するなら useEffect でOK ユーザ登録のような外部に影響のある処理 → イベントハンドラ内で実行 するべき useEffect は「特定のイベントによってではなく、 レンダー自体によって引き起こされる副作用 を指定するためのもの」である という内容が 公式ドキュメントに書いています 。 プロローグ もう夜も遅いのに、どの教室にも明かりが灯っていた。 TypeScript「ふぅ...やっと落ち着いた...」 実行委員のCS

                                「Reactでawaitしたら壊れた」「Reactでawaitしたら壊れた」 ~ useEffectの誤用と2回実行 ~ - Qiita
                              • How to think about `async`/`await` in Rust - Cliffle

                                2023-06-30 async fn is an inversion of control Hand-rolling an explicit state machine Explicit state machines mean your caller has control Writing state machines with async fn await is a composition operator Summary (This is a section of the lilos intro guide that people seemed to like, so to increase its visibility, I’m lifting it up into its own post and expanding it a bit. I hope this is a usef

                                • [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は使える
                                  • 【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。

                                    はじめに 登壇版 Taskの本質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先日 Stephen Toub 氏 (.NET の中の人。中心人物の一人。) が How Async/Await Really Works in C# という非常に面白い記事を投稿していました。 この記事では Stephen 氏の記事をベースに、C# において async/await は実際どうやって動いてるの?というお話をしていきます。 以前に C#での非同期メソッドの分析。 という翻訳記事を書いたのですが、元になった記

                                      【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。
                                    • C# の async/await は実際にどうやって動いているか

                                      .NET ラボ 2023/05/27 での発表資料 ↓↓↓ スライドより詳細なブログです ↓↓↓ C# の async/await は実際にどうやって動いているか

                                        C# の async/await は実際にどうやって動いているか
                                      • ruby.wasm で await を使う - tmtms のメモ

                                        最近はずっと ruby.wasm で遊んでます。 2023/5/19 に ruby.wasm 2.0 が出ました。 ruby.wasm 1.0 では await がうまく動かないことがあったけど、2.0 でちゃんと動くようになったんで、記念に前の記事以降にやったこと等をまとめてみた。 await ruby.wasm で await を使うには2つ問題がある。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある。 スタックサイズが小さくてすぐに SystemStackError エラーが出てしまう。 Ruby スクリプトを eval ではなく evalAsync で実行する必要がある HTML 内で <script type="text/ruby"> で気軽に Ruby スクリプトを書いたときに await を使うとエラーになってしまう。(ruby.wasm

                                          ruby.wasm で await を使う - tmtms のメモ
                                        • How Async/Await Really Works in C# - .NET Blog

                                          Several weeks ago, the .NET Blog featured a post What is .NET, and why should you choose it?. It provided a high-level overview of the platform, summarizing various components and design decisions, and promising more in-depth posts on the covered areas. This post is the first such follow-up, deep-diving into the history leading to, the design decisions behind, and implementation details of async/a

                                            How Async/Await Really Works in C# - .NET Blog
                                          • 【C#】async/awaitのキャンセル処理まとめ - Qiita

                                            はじめに C#におけるasync/awaitを使う上で、絶対に意識しないといけないものは「キャンセル処理」です。 正しく処理をキャンセルしないとメモリリークを起こしたり、デッドロックやデータ不整合を引き起こす可能性があります。 今回はこの「async/awaitにおけるキャンセル処理」について話します。 対象 C#におけるasync/await全般 Task/ValueTask/UniTaskすべてに共通します Unity含む C#のasyc/awaitについてイマイチ自信が持ててない人 先に「結論」 asyncメソッドはCancellationTokenを引数に取るべき await対象が引数にCancellationTokenを要求する場合は省略せずに渡すべき OperationCanceledExceptionの取り扱いを意識するべき 解説 そもそも「キャンセル」とは何を指すのか そも

                                              【C#】async/awaitのキャンセル処理まとめ - Qiita
                                            • [javascript] なぜ「forEachでasync/awaitは使えない」と言われるのか - Qiita

                                              はじめに とあるメンバーから、表題のようなことを言われました。 どうやら以下のようなコードで、「forEachでawaitを使っているのに処理順がおかしくなる」とのことから、この結論に至ったそうです。 async function testAsync(v) { await new Promise(resolve => { setTimeout(resolve, 100); }); return v + 1; } const data = []; const params = [0, 1, 2]; params.forEach(async v => { const res = await testAsync(v); console.log(res); data.push(res); }); console.log(data); // [] 1 2 3 彼としてはawaitによって非同期処理の

                                                [javascript] なぜ「forEachでasync/awaitは使えない」と言われるのか - Qiita
                                              • JavaScript のasync/awaitで再帰呼び出しのような長時間かかる処理の途中経過を表示する方法 - Qiita

                                                1.はじめに javascriptに限らず長い処理をフロントエンドで実行すると画面がフリーズします。長い処理をしながら画面フリーズを回避するいろいろな仕組みがあります。本記事では、javaacriptでPromise,await,asyncを使って、長い処理(例として巡回セールスマン問題を再帰呼び出しで全経路計算)の、処理途中経過をプログレスバーで表示して、ボタンにより処理中の計算を中断するにはどのようにプログラミングすればよいのかを調べてゆきます。 以下の例は都市数を入力すると、総当たりで最短経路を求める計算をフロントエンドだけで実行し、途中経過と最終結果(10都市で10!=約360万経路のパスコスト計算)を表示するコード例です。リンクコストは接続される都市番号の相乗平均としています。どうやって、途中経過を画面に表示させているのかが本記事の主題です。 See the Pen Factor

                                                  JavaScript のasync/awaitで再帰呼び出しのような長時間かかる処理の途中経過を表示する方法 - Qiita
                                                • async/awaitのaの違い~async wait説への反論 - Qiita

                                                  はじめに ncaq氏の記事を読んで様々なことを学習できました。 asyncが「syncしない」なのにawaitが「waitする」なのは何故か。awaitがasync waitであるという説は正しいのか。async/awaitの語源について学習したことを記事にしました。 asyncとawaitのa-の違い asyncはsynchronize(同期)にa-(否定)が付いてasync(同期しない)となります。 awaitはwait(待つ)にa-(否定)が付いて「待たない」となりません。a-(方向)が付いてawait(待つ)となります。 a-(否定)とa-(方向)の違いです。 a-(否定)は「エイ」と発音する傾向 asynchronous エイスィンクロナス 非同期 Ajax エイジャックス(Asynchronous JavaScript And XML) asymmetry エイスィメトゥリィ

                                                    async/awaitのaの違い~async wait説への反論 - Qiita
                                                  • RFC: First class support for promises and async/await by acdlite · Pull Request #229 · reactjs/rfcs

                                                    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

                                                      RFC: First class support for promises and async/await by acdlite · Pull Request #229 · reactjs/rfcs
                                                    • 2022/5 async/awaitから理解するJavaScript非同期処理

                                                      最近身の回りにJavaScriptを使う人が増えています。フロントエンドエンジニア(自称)としては嬉しい限りです。そんな中、非同期処理について聞かれることが多いので、初学者にもなるべくわかりやすく説明してみたいと思います。 インターネットでJavaScriptの非同期処理について検索すると、コールバック、Promise、async/await...というように、難しい話がたくさん出てきて混乱すると思います。 非同期処理についてはコールバック関数、Promise、async/awaitの順番で学んでいくのが普通ですが、コールバック関数、Promiseは少し難しいので、以下の順番で説明していこうと思います。 async/await コールバック関数 Promise 非同期処理tips まず先に非同期処理の概念について説明したいところですが、後輩がとてもわかりやすく説明してくれているのでここでは

                                                        2022/5 async/awaitから理解するJavaScript非同期処理
                                                      • Swift 5.5からのSwift Concurrencyのasync/awaitの使い方

                                                        非同期処理、並行処理を不具合なく実装することはとても難しいです。 クロージャーはどんどんネストされ読みにくくなり、複数のスレッドが同じデータを書き込めばデータ競合が起こります。 Swift 5.5からはSwiftの言語機能としてConcurrencyが登場しました。 これは非同期処理、並行処理のコードを簡潔かつ安全に記述できる機能です。 async/awaitを使えば、同期処理と同じような書き方で非同期処理を記述できます。 またactor型を使えばデータ競合を防ぐことができます。 actor型に関してはSwift 5.5から登場したActorについてをご覧ください。 この記事ではSwift 5.5からのSwift Concurrencyの機能の一つasync/awaitの使い方を解説します。 サンプルコード https://github.com/SatoTakeshiX/first-ste

                                                          Swift 5.5からのSwift Concurrencyのasync/awaitの使い方
                                                        • 第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp

                                                          [速習] Puppeteer ~ヘッドレスChromeでテスト&スクレイピング 第2章ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント 第2章では、実際にヘッドレスChromeを自動化するうえで必要となる、最新のJavaScriptの構文やPuppeteerのAPIについて解説します。 進化し続けるJavaScript PuppeteerのAPIを解説する前に、第1章の冒頭で掲載したサンプルコードを見返してみましょう。もしかすると、中にはまったく見慣れない構文が見つかったかもしれません。 const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await b

                                                            第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp
                                                          • 「async」と「await」をつけるだけ!強力なRustの非同期処理

                                                            今月はRustの非同期処理をHTTPサーバーの開発を通して説明している。実際に手を動かすことで、Web開発の基本であるHTTPサーバーの仕組みと非同期処理の基礎を同時に学ぶことができる。 並行サーバーの実装 HTTPサーバーには、クライアントからリクエストが来た順番に処理する「反復サーバー」とイベントを切り替えながらリクエストを処理する「並行サーバー」がある。今回は、反復サーバーを基に並行サーバーを実装する。Rustでは思ったよりも手軽に非同期処理を実装できることを実感できるはずだ。 新規プロジェクトとソースコードを用意 並行サーバーを実装するために、新しいプロジェクトを用意する。 並行サーバーの実装では、非同期プログラミングを利用可能にする「tokio」というクレートを利用する。そのためには、Cargoの設定ファイルである「Cargo.toml」の[dependencies]というセクシ

                                                              「async」と「await」をつけるだけ!強力なRustの非同期処理
                                                            • async/await周りで苦しんだ箇所の例と対策 | DevelopersIO

                                                              どうも。CX事業本部Delivery部のえーたん(@eetann092)です。 今まで雰囲気でJavaScript(TypeScript)のasync/await、Promiseを使っていて最近苦しんだため、ハマったところの例と対策を備忘録として残しておきます。 await付け忘れ やらかした例 まず、awaitを付け忘れた例です。 import { setTimeout } from "timers/promises"; const unit = 1000; async function logSleepLog(msg: string) { console.log(msg); await setTimeout(1.5 * unit); console.log(msg); } (async () => { logSleepLog("hoo"); console.log("finish");

                                                                async/await周りで苦しんだ箇所の例と対策 | DevelopersIO
                                                              • 【Unity】【C#】Unityでasync/await、Taskを完全に理解する!基礎から応用まで非同期処理を総まとめ - LIGHT11

                                                                Unityでasync/await、Taskを実用レベルでしっかり理解するために必要な情報をまとめました。 はじめに - async?await?Taskとは? MonoBehaviourのメソッド(Startとか)を非同期メソッドにする 結果を返すTaskを作る 複数のTaskを直列で実行する 複数のTaskを並列で実行する Taskをキャンセルする 例外処理について タイムアウト処理 await後に元のスレッドに戻さない 参考 Unity2018.2 C#6 はじめに - async?await?Taskとは? async/await、Taskを学ぶ上で最初にするべきことは非同期処理の概念を理解することです。 次の記事では非同期処理の概念とasync/await、Taskの基本的な使い方をわかりやすく説明しています。 必要に応じて参照してください。 light11.hatenadiar

                                                                  【Unity】【C#】Unityでasync/await、Taskを完全に理解する!基礎から応用まで非同期処理を総まとめ - LIGHT11
                                                                • awaitでfetchを書く、promiseでfetchを書く

                                                                  はじめに この記事はJSにおけるfetchの書き方で、awaitとpromiseの書き方で分からなくなった人のために忘備録として記しておく記事です。 fetchの書き方 以下の四つのコードは同じです。 // promiseの書き方 fetch("http://wttr.in/Fukuoka?format=j1") .then(function (res) { console.log(res); // => Response return res.json(); }).then(function (json) { console.log(json); // => json }) // asyncの書き方 // top level awaitは使えないのでasyncの関数で包んでから実行する async function get_data() { const a = await fetch("

                                                                    awaitでfetchを書く、promiseでfetchを書く
                                                                  • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

                                                                    async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基本的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最

                                                                    • C# の Web アプリで async/await を使わないとどれくらい性能劣化するか見てみよう(.NET Framework編)

                                                                      前に ASP.NET Core で非同期と同期で3秒待ってレスポンス返すだけのプログラムを書いて Azure の Web Apps にデプロイして結果を見るという事をやりました。 今回は、これの ASP.NET 4.8 編になります。 デプロイした Web API 純粋に Thread.Sleep(3000); で待つものと await Task.Delay(3000); で待つものの二種類を作りました。ASP.NET 4.8 の Web API のテンプレートで出力される ValuesController の Get() メソッドに対して上記の2種類のコードを追加しています。 同期版 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.H

                                                                        C# の Web アプリで async/await を使わないとどれくらい性能劣化するか見てみよう(.NET Framework編)
                                                                      • JavaScript ES6のAsync/Awaitで非同期処理とエラー処理、並列処理を解説!初心者向け完全ガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ

                                                                        この記事では、ES6のasync/await、およびPromises.all()を使用して非同期プログラミングを容易にする方法を学習します。 前回でのPromiseチュートリアルは以下で学ぶことができますので参照ください。 dev-k.hatenablog.com async/awaitとは asyncキーワード awaitキーワード Promise並列処理 async/awaitでのループ エラー処理 async/awaitでFetchを使用する方法 使用に関する注意点(ルール) 最後に async/awaitとは async/awaitは技術的に言えば、Promisesのシンタックスシュガー(Syntax sugar)となります。 シンタックスシュガーとは簡単に言ってしまえば、構文を省略しプログラムを書いていく事をシンタックスシュガーと言います。 ですが、これはプログラミング言語によっ

                                                                          JavaScript ES6のAsync/Awaitで非同期処理とエラー処理、並列処理を解説!初心者向け完全ガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ
                                                                        • [Javascript] awaitは役に立つ - Qiita

                                                                          今さらだけどawait awaitは2017年あたりに出てきた機能で新しくもないですが、私は新しい機能が出ても大体の環境にサポートされるまで触らない意識低い系エンジニアなので、IEで使えない async/awaitとPromiseは存在を知りつつもスルーしてきたのですが、そろそろIEを切ってもいいと思えたので、解禁してみました。 本記事の内容 この記事はawaitがどんな時に役立つかを紹介するものです。 Promiseのことは知っている前提の記事なので、Promiseの使い方を知らない人は、まずそちらを調べてから読むのがおすすめです。 awaitの使い方 awaitの使い方について簡単におさらいです。 awaitはasyncをつけた非同期関数の中で使え、Promiseを返す関数呼び出しの前に書きます。 本記事でawaitを使っているコードは、明示していなくても全て非同期関数内の前提です。

                                                                            [Javascript] awaitは役に立つ - Qiita
                                                                          • 【非同期処理】JavaScriptのPromise, async, awaitなどについての整理と使い方 - Qiita

                                                                            【非同期処理】JavaScriptのPromise, async, awaitなどについての整理と使い方JavaScriptpromise非同期処理asyncawait 非同期処理/同期処理について C言語やPythonから入った私はコードは上から順に実行されるものだと思っていました。しかし、JavaScriptはクライアントサイドの言語であり、 「ページ更新などレスポンスの即時性が求められているため非同期処理である」 とのことです。 ~同期処理とは~ コードを上から順に処理していき、「サーバとのデータのやりとりなど時間がかかる作業を待って次の処理を行う」といったイメージです。 ~非同期処理とは~ 原則的にコードは上から順に処理していきますが、「サーバとのデータのやりとりなど時間がかかる作業と並行して次の処理を行う」 ※詳細なイメージは@don-bu-rakkoさんの以下をご参考にして頂け

                                                                              【非同期処理】JavaScriptのPromise, async, awaitなどについての整理と使い方 - Qiita
                                                                            • await-to-js で非同期処理(Promise)の try/catch をなくそう - Qiita

                                                                              API 通信などのエラーハンドリングはどうしていますか? await したものを try/catch で囲む、もしくは Promise の catch を使うなどがありますが、きちんと都度エラーハンドリングしていくとコードが複雑になりがちです。 await-to-js はそういったエラーハンドリングの辛さを解消する手段の1つとして効果的です。 それでは簡単なエラーハンドリングの例を元に説明していきます。 非同期処理のエラーハンドリング 例えば「ユーザーを取得してタスクを保存する」というものを考えてみます。 async function saveUserTask(userId) { // ユーザー取得 const user = await fetchUser(userId); if (!user) { throw new Error("存在しないユーザー"); } // タスク保存 cons

                                                                                await-to-js で非同期処理(Promise)の try/catch をなくそう - Qiita
                                                                              • V8エンジンによる内部変換コードでasync/awaitの挙動を理解する

                                                                                はじめに JavaScript の「非同期処理」ってやっぱりかなり難しくないですか? 自分も色々試行錯誤しましたが、結局「完全に理解した🤓」→「やっぱり何も分からん😭」っていうループの中で泥臭く理解を深めていくしかないようです。 さて、非同期処理の制御をある程度予測できるようになるには、非同期 API を提供する環境のことやイベントループ、マイクロタスクなどの仕組みについて理解する必要があります。 そして環境に埋め込まれた JavaScript Engine のことも理解する必要があります。 今回の記事では、JavaScript Engine の1つである V8 が内部で変換するコードから async/await の挙動を理解するための解説を試みたいと思います。V8 エンジンからアプローチすることで async/await の分かりづらい挙動を掌握して非同期処理を打倒します。 今回の記

                                                                                  V8エンジンによる内部変換コードでasync/awaitの挙動を理解する
                                                                                • Unityの機能をawait可能にしてasync / awaitについて学ぶ

                                                                                  概要 C#では非同期処理として async / await の仕組みが用意されています。しかし実はこの機能、コンパイラによってコードが変更され、コールバックという形に変換されて動作するようになっているのです。そのため、知らずに使っていると思わぬところでハマったり、エラーになってしまったり、といったことが起きえます。 今回はそんな async / await の機能の内部を探りながら、最後はUnityの機能を拡張する実装を通して非同期処理を理解していこうと思います。 安原さんと名雪さんのスライドがとても分かりやすく参考になるので、こちらもぜひ読んでみてください。 非同期処理の挙動を確認する 細かい内容に入っていく前に、しっかりと把握していないとどういうことが起きるのかということを確認しておきましょう。 上のスライドにも書かれている以下のメソッドを実行するとどうなるでしょうか? using S

                                                                                    Unityの機能をawait可能にしてasync / awaitについて学ぶ