JavaScript において、特に苦手とする人が多い印象のある Promise ですが、await と async の文法が導入されたことで、Promise の仕様を深く理解しなくても非同期処理を自然に書けるようになってきたのではないかと思います。 極論ですが、JavaScript の非同期処理は async await new Promise のみで、(ほぼ)全て表現可能です。特別な理由がない限り then を使わないようにしましょう、ということを周知するのがこの記事の目的です。 なお本記事では Promise の rejected の状態についてほとんど解説しておりません。基本を理解したら、別記事でぜひ学んでみてください。 Promise とは? Promise は、少し乱暴に説明すると「実行が終わっていないかもしれない何らかの関数」を包んだオブジェクトです。 普通の関数とは違って、
Mike Bayer is the creator of many open source programming libraries for the Python Programming Language, including SQLAlchemy, Alembic Migrations, Mako Templates for Python, and Dogpile Caching. Dilly and Posy were dedicated members of the team. Dilly and Posy were best of friends, and after a few years in different worlds are together again. We will always love and miss you Dilly and Posy! Catego
import asyncio async def main(): print('Hello ...') await asyncio.sleep(1) print('... World!') asyncio.run(main()) asyncio is a library to write concurrent code using the async/await syntax. asyncio is used as a foundation for multiple Python asynchronous frameworks that provide high-performance network and web-servers, database connection libraries, distributed task queues, etc. asyncio is often
Unverified details These details have not been verified by PyPI Project links Chat: Matrix Chat: Matrix Space Coverage: codecov Docs: Changelog Docs: RTD Meta License: Apache-2.0 AND MIT Maintainer: aiohttp team Requires: Python >=3.9 Provides-Extra: speedups Key Features Supports both client and server side of HTTP protocol. Supports both client and server Web-Sockets out-of-the-box and avoids Ca
「HackerNews翻訳してみた」が POSTD (ポスト・ディー) としてリニューアルしました! この記事はここでも公開されています。 Original article: Managing Node.js Callback Hell with Promises, Generators and Other Approaches by Marc Harter 下のようなコードが、親しみをこめて「コールバック地獄」とか「死のピラミッド」とか呼ばれているのはご存じですよね。 doAsync1(function () { doAsync2(function () { doAsync3(function () { doAsync4(function () { }) }) }) この状態がコールバック地獄かどうかは、意見の分かれるところでしょう。ネストがいくら深くても全く問題がないコードもあるからで
async.js 主にnodeで使用されている、javascriptの非同期処理を扱うライブラリです。 フロントエンドでもゲーム作り等では重宝するんです。 その中でも使用率がかなり高い、waterfallとseries、そしてparallelの三つについて簡単にまとめました。 さらに、ECMAScript6からは非同期処理を扱うためのPromiseオブジェクトが標準で使用できます。 ECMAScript6のアロー関数とPromiseまとめ - JavaScript 技術情報のみつぶやくアカウント作成しました。JavaScriptなどの最新情報も追っていきます。 Twitter: [@takeharumikami] (https://twitter.com/takeharumikami) RSSはこちら Feedly: [Feedlyをフォロー] (http://cloud.feedly.c
Google Chrome Canary(正確にはV8)に、ついにGenerators(yield)が入った。これを上手に使うと、エラー処理を含む非同期コードを同期的に書くことができるようになり、見通しが極めて良くなるので、ここで紹介する。 ここで紹介するものはいずれNode.jsでも使用できるようになるので、Webとの互換性を気にする必要のないNode.jsでは近いうちに活用できるようになると思う。 下のコードを動かすためには、最新のGoogle Chrome Canaryで、chrome://flagsからexperimental javascriptを有効にしておく必要がある。 ES6 HarmonyのGenerator構文について functionではなくfunction*というキーワードを使うと、yieldキーワードが使えるようになる。 function* range(begin
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 2017年5月20日追記 本エントリはI/OのOperationとCompletionおよびデータ整合性を混ぜてまとめた一部誤った定義になっているので、正確な定義を日本語で知りたい方は下記にリンクしたエントリを読むことをおすすめします。 非同期とノンブロッキングとあと何か Apache2.4.1のevent_mpmやnginx及びnodde.jsのアーキテクチャを考える上で、非同期I/OやノンブロッキングI/O、I/Oの多重化に関してある程度正確な理解が必要だと思ったのでまとめておく。 ここで「ある程度」といったのは、非同期を表すAsynchronousとノンブロッキングのnon-blockingは曖昧に使われる場合が多いからだ。まず、英語の
クライアントサイドでは cho45さんのライブラリなんか結構便利なんですが、 ここが詳しい。Async.js というライブラリに言及してます。 Node の標準サンプルには「コールバックを深く掘り下げるコールバックチェーンとか呼ばれる方式」で照会されます。 でも、コードは、シーケンシャルに書きたいよね。ってときに。 非同期処理を考えることになります。 追記) 2013-04-10 上のとは違いますが、意外とポピュラーなのが、caolan/async.js かも。 こちらは「幾つものユーザ関数のそれぞれをタスクとして捉え、全タスクを処理し、最後に結果を返せばいいんだろ?なら、シンプルなコールバックに纏めることができるぜ!?」てのが 基本コンセプトのようです。 要点1)「複雑にネストしまくる処理をシンプルなコールバック関数に纏める」のが目的のモジュール。 // var rslt = async
このテキストは JavaScript のコールバック地獄に疲れたひとのためのコールバック駆逐術指南書です。対象読者は JavaScript道初段くらいの人です。このテキストを読むと、以下のそれぞれの手段における非同期処理制御の仕組み、利点および欠点がわかるようになるかもしれません。 コールバック地獄 jQuery.Deferred async.js Concurrent.Thread generators co fibers Web Workers (※なぜか『進撃の巨人』の一部ネタバレが含まれるので注意してください) それは『何故人はコールバックするのか』という話でしょうか? 非同期処理って面倒ですよね。JavaScriptではいわゆる コールバック地獄 というやつにしばしば陥りがちです。たとえば、Ajax でふたつのファイル hoge.txt と piyo.txt を持ってきて、それら
brook という、非同期処理をシーケンシャルに記述できる javascript のフレームワークを最近使う機会があったので、どういう実装になってるのかを読んでみた。 (ちなみに iPhone の chrome で github 開いてコードを読んだのですが、 iPhone で github 上のソースを読む時のベスプラとかあるんですかね・・・?) そもそも brook ってなんぞ?は以下を。 tanabe/Advent-calendar-2011 · GitHub brook どこにあるの?は以下を。 https://github.com/hirokidaichi/brook ※brook は、 Namespace という、javascript に名前空間を提供するライブラリに依存しています。 実装読む前にそもそもどう使うのか たとえば、setTimeout で、1秒毎に挨拶文を変更する
intro 先日の Go のカンファレンス GoCon で、 Go の並行処理周りについて発表させて頂きました。 Go Conference 2013 spring - connpass 具体的には Goroutine や Channel の話ですが、これらの機能は結構面白くて、いじって遊んでるだけでもわくわくします。 Go の並行処理は、設計方針がわりと特殊だと思うのですが、設計がシンプルなので分かるとそこまで難しくはないです。 (使いこなすのは、経験が必要そうですが) 今回話すにあたって色々調べましたが、発表時間の都合上省いたものもあるし、質疑応答で聞かれて応えられなかったこともあるので、 ここでまとめて置こうと思います。 発表資料 今回の発表資料はこちらです。 このブログの内容は、これをベースにします。 http://jxck.node-ninja.com/slides/gocon-
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く