タグ

asyncに関するakishin999のブックマーク (60)

  • 100秒で理解するPromise

    そもそも非同期処理とは? Promiseについて知るためには、まず非同期処理について知っておく必要があります。 以下の動画で、非同期処理について100秒で解説しているので、そもそも非同期処理をよく知らないなぁという人はぜひ確認してみてください! Promiseとは では、題です。 Promiseとは、ES2015で導入された、非同期処理の状態や結果を表現するオブジェクトのことです。 PromiseはES2015で導入された非同期処理の状態や結果を表現するビルトインオブジェクトです。 非同期処理はPromiseのインスタンスを返し、そのPromiseインスタンスには状態変化をした際に呼び出されるコールバック関数を登録できます。 jsprimer - 非同期処理:Promise/Async Function 例えば、出前アプリでピザを注文することをイメージしてみましょう。 ピザを注文すると、

    100秒で理解するPromise
  • 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
  • plenary.nvim による非同期処理 - Qiita

    1. plenary.nvim とは? Neovim 界で一番メジャーなプラグインとは何でしょう? 異論はあるかも知れませんが、多くの人は telescope.nvim を挙げると思います。ファジーファインダーの決定版ですね。 telescope.nvim は非常に複雑で大規模なプラグインなのですが、その開発で使われている便利な関数群は別のプラグインに切り出されています。それが plenary.nvim です。 plenary.nvim 自体も様々な機能を持っているのですが、この中で日紹介したいのは plenary.async というライブラリー。名前の通り、Neovim Lua で非同期処理を実装するための関数群です。 このライブラリーには条件変数、セマフォ、チャンネルといった、格的な非同期処理を書くために必要なパーツが含まれています。以下ではこのライブラリーの全機能について、実際に

    plenary.nvim による非同期処理 - Qiita
  • JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー

    対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 入門記事へのリンク プロミスの使用 - JavaScript | MDN Promise, async/await (現代の JavaScript チュートリアル) JSの初心者にPromiseとasync/awaitの使い方

    JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー
  • コアあまりのはなし- Message Passing

    Message Passing is licensed under CC-NC-SA. It has a feed and is hosted by a GitHub organization. Uses this for the OG image.

    コアあまりのはなし- Message Passing
  • async/await は Promise を置き換えない - Okapies' Archive

    まとめ async/await 構文は、Promise で書ける処理のうち特定のケースしか表現できない 特定のケースとは、ある非同期処理の前処理と後処理がそれぞれ 1 個ずつの場合のみである async/await 構文は初心者に非同期処理を導入する際に適しているが、非同期処理を逐次処理として書けるという幻想を与えるので、どこかで知識をアップデートする機会を設けるべきである この記事はなに? 少しバズったのでまとめておこうかと。 「async/await があれば Promise なんて難しいものは要らない!」とか言ってるウブな子に、複数の API に並列にリクエストを投げて一つ以上成功した時だけ先に進む、みたいな問題を与えて愛でてみたい。— Yuta Okamoto (@okapies) 2020年12月11日 async/await は Promise のネストを手続き的なコードに見え

    async/await は Promise を置き換えない - Okapies' Archive
  • 【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita

    「な、なんじゃこりゃあああぁあっtっt!!!!」 ・・・ ・・・ ・・・ 非同期処理を"ちゃんと"理解して使いたい 『非同期処理なんとなくの理解で書いている...』 『動いてるし、ヨシ!』 令和プログラマー*1である私自身、なるべく気を付けようと思っていますが、ついついなんとなくで書いてしまいそうになります。 (*1: 令和になってからプログラミングを知った人。初心者のこと。) ちなみに冒頭のコードは、「並列でいける処理をつい直列でやってしまっている」 例です。 実際に手を動かしながら非同期処理の理解を深める 記事は以下の構成で、順を追って非同期処理を学習し、明日から自信を持って非同期処理が書けるようになるためのハンズオンです。 JSの非同期処理について知る Promise について知る Async / Await を使えるようにする 冒頭のコードがリファクタリングできるようになる 実際

    【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita
  • Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理

    Passkey Autofill に賭けるマネーフォワード ID - Money Forward Tech Day 2024

    Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理
  • CSSを非同期ロードする最も簡単な方法 - Qiita

    CSS読み込みの<link rel="stylesheet">は同期なので、レンダリングブロックします。 どういうことかというと、CSSファイルの読み込み・パースが終わるまで画面描写が止まってしまいます。 これに対策する方法としてpreloadというものが策定されましたが、対応状況が微妙です。 2019年7月時点でもブラウザシェアが8割しかなく、Firefoxは当面対応するつもりがないようです。 とはいえ残り2割のためにloadCSSを突っ込んだりとか始めると末転倒感に溢れます。 全ブラウザ対応のためには、なんにしろ結局JavaScriptをこりこり書くしかない状況でした。 が、なんかすっごい簡単な対処法があったので紹介してみます。 以下はScott Jehlによる記事、The Simplest Way to Load CSS Asynchronouslyの日語訳です。 ちなみにSco

    CSSを非同期ロードする最も簡単な方法 - Qiita
  • Callback を撲滅せよ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。言語サポート(Node.js)チームの伊藤(@koh110)です。 Node.js v10 も10月にLTSとなり async/await によるフロー制御は当たり前のように利用されるようになってきました。JavaScriptの非同期処理は async/await から覚える人も今後増えていくでしょう。今回はそんな非同期処理について、社内での事例を交えて記事を書いていこうと思います。 index Promise 化がなぜ重要なのか ユーザーに promisify をさせる落とし穴 Road to Promise まとめ Promise 化がなぜ重要なのか ちょうど3年前のアドベントカレンダーで、今後はいろいろなモジュー

    Callback を撲滅せよ
  • 非同期I/O APIの設計がなかなか難しい - .mjtの日記復帰計画

    yuniで実用的なプログラムを書くためには、どうしても非同期I/Oライブラリが必要になる。というわけで黙々と設計しているけれど、これがなかなか難しい。 非同期I/Oライブラリの難しさ そもそもOS/処理系毎に別物が必要 "非同期I/Oライブラリなんてlibuv一択だろ"という意見も有るかもしれないし、実際、Node.jsはlibuvのデザインの実用性を証明しつづけていると言える(実際には逆で、Node.jsのOS抽象化レイヤとしてlibuvが実装されている)。が、libuvはカーネル機能の抽象化でしかなく、同じデザインがyuniに適用できるとは限らない。yuniは既にKawa(Java上のScheme実装)やIronScheme(.net上のScheme実装)をターゲットしているので、これらでも動作するような配慮が必要になる。 もし、yuniの非同期I/Oライブラリを単なるlibuvのバイ

    非同期I/O APIの設計がなかなか難しい - .mjtの日記復帰計画
  • async/awaitで非同期処理はシンプルになる - Qiita

    javascriptで非同期処理を書こうとした時、普通に処理を書くと上から書いた通りの実行順序では完了しません。非同期処理の部分が、往々にして遅延して処理が完了してしまうからです。 非同期処理として有名なものには ajax や setTimeout、XHR(XMLHttpRequest) が存在します。 コマンドライン上で実行する簡単な例を書くと $ node > console.log('hello'); console.log('world'); hello world undefined > setTimeout(() => console.log('hello'), 500); console.log('world'); world undefined > hello 普通に連続で書くとhello と world が順序通り表示されますが、setTimeoutを使った方は順序が逆に

    async/awaitで非同期処理はシンプルになる - Qiita
  • node-retryとasync.seriesをっかって非同期逐次処理の再試行 - ayapi.github.io

    Node.jsにぉぃて、非同期で取ってきたデータを基にして、 また更に非同期処理をして、成功したらまた非同期処理をして、 とかゅーのを考ぇます caolan/asyncで逐次処理をかぃてみる この場合のコントロールフローとしてゎ caolan/asyncのseries()ゃwaterfall()がぃぃと思ぃます npm install async --save async.series()をっかってかくと、こんなふうになります https://gist.github.com/ayapi/9257773 サンプルなのでsetTimeout()で結果を渡すょーにしてますが、 実際にゎ、httpリクエストとかのコールバックでdoneを呼びます getが1秒後に成功してから、sendが実行されます けどsendでゎ1秒後に必ずエラーが発生して、 saveゎ実行されずにぉゎり、とゅーかんじです 出力

  • Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita

    はじめに 非同期プログラミングと呼んでいるのは、ノンブロッキングIOと select, poll, epoll, kqueue のようなIO多重化を利用したネットワークアプリケーションを書くことです。 node.js で websocket 使ったチャットを書くとかそういうのです。 「他の多くの言語」とは、 Python (asyncio), node.js, C# などを想定しています。 Erlang や GHC なんかは Go に近いかも知れません。 async / await がない言語では、「コールバック地獄」や「deferred地獄」のような問題もありますがこの記事では扱っていません。 async / await のメリットを解説した他の記事を参照してください。 あとこの記事は主にランタイムに関する部分を扱っているので、「それは言語じゃなくて処理系の問題だ!」等の頓珍漢な揚げ足取

    Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
  • スターバックスは2フェーズコミットを使わない - gregors-ramblings-ja - Google Code

    Code Archive Skip to content Google About Google Privacy Terms

  • C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita

    C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?)C#非同期処理StackOverflowマルチスレッド翻訳 StackExchange/Code Reviewでの質問"Exporting doc types using queues and multithreading"へのEric Lippert氏による回答より訳出。回答内容はオリジナル投稿"What are the best practices with multithreading in C#?"に呼応するため、編集前のタイトルを採用。原文および訳文のライセンスは引用元サイト規約の通り CC-BY-SA 3.0 に従う。 (補足:回答内容のトーンに合わせて口語調かつ意訳気味に訳出しました。誤訳指摘および訳出改善は歓迎

    C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
  • PHPで作る非同期処理

    PHP Conference 関西 2016 で公演したスライドです 来シングルスレッドの処理系であるPHPですが、非同期処理が絶対に実現できないかというとそういうわけではありません。 素のPHPでは確かに難しいですが、各種エクステンションやライブラリの力を借りることで、PHPの文法で非同期処…

    PHPで作る非同期処理
  • AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD

    (2016/7/7、いただいたフィードバックを元に記事を修正いたしました。) JavaScript、特にNode.jsといえば、 コールバック地獄 がよく連想されます ^(1) 。たくさんの非同期I/Oを扱うコードを書いたことがある方には、おそらく以下のようなパターンはおなじみでしょう。 export default function getLikes () { getUsers((err, users) => { if (err) return fn(err); filterUsersWithFriends((err, usersWithFriends) => { if (err) return fn(err); getUsersLikes(usersWithFriends, (err, likes) => { if (err) return fn (err); fn(null, lik

    AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
  • Project Grizzly

    Writing scalable server applications in the Javaprogramming language has always been difficult. Before the advent of the Java New I/O API (NIO), thread management issues made it impossible for a server to scale to thousands of users. The Grizzly NIO framework has been designed to help developers to take advantage of the Java™ NIO API. Grizzly’s goal is to help developers to build scalable and ro

  • 自作でイベント駆動型サーバ作るのツライ問題とlua-nginx-module - NaCl Blog

    何の因果かわかりませんが、お仕事でちょっと賢いリバースプロキシサーバ(以降、RPサーバ)を作る機会が2回ありました。 HTTPヘッダの内容によってプロキシ先のサーバを動的に切り替えるようなものです。 この要件を満たすため、RPサーバには以下のようなプログラムが必要になります。 HTTPヘッダの内容を知るためにHTTPリクエストをパース プロキシ先のサーバへHTTPリクエストをプロキシ プロキシ先のサーバはRedisから取得 レスポンスをクライアントへ返す 大量のリクエストも捌ける 1回目はRubyとI/O多重化のライブラリを使ってイベント駆動型のRPサーバを自作してみました。 が、振り返ってみるとこれは失敗でした。 なぜ失敗だったのか? Rubyでイベント駆動型のサーバを書こうとすると様々なものが途端に大変になります。 イベント駆動型サーバではほとんどの箇所でブロックする処理を書けません。