BT

Microsoft は Edge Preview Build で Async/Await が利用可能に

作者: David Iffland , 翻訳者 勇 大地 投稿日 2015年11月3日 |

原文(投稿日:2015/10/14)へのリンク

Microsoft が提供する Edge ブラウザにて、来るべき ES 2016 の機能である async/await が利用可能となった。同機能は未だプレビュービルドでの実験的な試みだが、同機能の存在は広域な普及に向けての重要な一歩となる。

JavaScript 固有の非同期実装は強力だが、単純な処理の場合でも開発者には過剰なコードを書く負担を強いていた。"Callback 地獄" は JavaScript 開発者が苦笑いしながら頷くジョークだ。近年の開発者は、非同期コードを書くより良い手段として Promise を取り入れている。Promise は十分に進化しており、ES6 仕様の一部となっている。

async/await 機能は Promise からさらに改善しており、従来の Promise でコールバック群を連携させるために必要なコードを排除することができる。関数 getJsonAsync における一例として、Promise を返すがasync/await を利用した場合、より非同期な形式で Promise を利用したものと同様のコードを記載できる。

async function getServerData() {
    try {
        // Once the promise is resolved, the value is returned
        var json = await getJsonAsync();
        
    }
    catch (e) {
        // If the promise is rejected, the result ends up in the catch block
    }
}

C# 開発者は C# 5.0 で導入された async/await と似た構文であることに気づくだろう。C# では非同期的なコードは非同期的な作法で記載することが可能であり、過剰なコードでつなぎ合わせることは不要だ。同様に、JavaScript における async/await は定型的なコード量を削減する素敵な機能だ。

同機能は Windows Insider プログラムにおける build 10547 で利用可能だ。ウィンドウに about:flags を入力し、" 試験的な JavaScript 機能を有効にする " フラグを有効化する。

現在のところ、他のブラウザで同機能は利用できない。Babel Transpiler が 実験機能として async/await をサポートしている。他のブラウザがサポートするのはそう遠くはないだろう。Mozilla は現在取組中だ。

ブラウザへの実装は ECMAScript 標準化プロセスへの必要なステップだ。async/await は現在ステージ 3 であり、"Candidate" となっている。最終ステージである 4 になるためには、実装が必要となる。async/await の大御所である Brian Terlson 氏は、今年の QCon New York で同件と TC39 ES2016 プロセスについて言及している。

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
サイト全般について
バグ
広告
記事
Marketing
InfoQ.com and all content copyright © 2006-2015 C4Media Inc. InfoQ.com and 株式会社豆蔵 InfoQ Japan hosted at Contegix, the best ISP we've ever worked with.
プライバシー
BT