関連の話題を取り上げます。いうライブラリを紹介しました。書いてくれたので翻訳しました。シングルスレッドです。上から下に順番にコードを実行します。同時に二つのコードを走らせることはできません。ファイルを(外部の)サーバーからダウンロードする時には、そのファイルを取得するまで待たなければなりません。非同期のJavaScriptを使って、スレッドを止めずに、効率的にコードを実行する方法があります。皆さんは恐らく非同期のJavaScriptのことをよくご存じのことと思います。イベント(Observerパターン)とコールバックは非同期コードの一例です。リクエストを送ったり、ユーザーがボタンを押した際には、アクションがイベントループと呼ばれるキューにプッシュされます。イベントループの処理を開始しません。このせいで、JavaScriptはマルチスレッドではないのに、そのように見えることになります。際に、その完了をユーザーに通知しなければならない時によく使われます。いった関数を呼び出すときに、引数として動作を確認するためのもう一つの関数を渡します。コールバックをコールバックの中に入れることはすばらしい解決案ですし、私はそれがJavaScriptの強力な特徴の1つであると思います。最初のコードにさらに非同期処理が必要となったときに、コードが汚くなってしまうかもしれません。ローカルストレージから、ユーザー設定を読み込みました。それらの設定に基づいて、データベースに接続した外部サーバーにリクエストします。画面に情報を描画する前に、何らかのものをデータベースから取り出します。(コールバック#3)大規模な企業アプリを構築する際には、これらのステップは非常に一般的です。コールバック関数の中にコールバック関数が書かれ、それは別のコールバック関数の中にあります。1ヵ月後に、このコードを読むのにどれほど苦労するかは想像に難くありません。ここがJavaScriptのPromiseの使いどころです。それは、より読みやすく分かりやすいやり方でコードを書く新しい方法です。Promiseとはタスクの結果を意味します。その結果は完了している場合もあるし、していない場合もあります。Promiseがつくられるときにはどうなっているかわからない値に契約するようなものです。メソッドを持ったオブジェクトまたは関数です。メソッドのおかげで、アクションをエンドレスに繋げることができます。4つの状態があります。最新版で利用できます。スペックに準拠します。両方のツールキットに含まれます。クラスを呼び出すことができます。提供する機能が使われ、モダンブラウザーではネイティブの機能が使われます。オブジェクトを返す関数の例です。コンストラクターは、引数を一つ取ります。それはresolveとrejectの2つの引数を持つコールバックです。“reject“が呼び出されます。次が、このPromiseの使い方です。2つの引数を取ります。成功した場合と失敗した場合のコールバックです。両方とも必須ではありませんので、成功か失敗のどちらかのコールバックだけをセットすることもできます。thenメソッドをチェーンして次々に非同期処理を繋げることができます。チェーンを終わらせたり(“done()”)、キャンセルしたり(“cancel()”)する方法もあります。チェーンにonCompletedコールバックをアタッチする方法もあります。(“always()”)例えば、結果にかかわらずクリーンナップロジックを実行する時などに使います。チェーン内のアクションがリジェクトされた時にonRejectedコールバックをアタッチすることもできます。Promiseのサポートを統合しました。派生したクラスのインスタンスです。これにより次のように記述することができます。使い方を説明した情報が沢山あります。次の資料をご覧になって勉強して下さい。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。実は僕もちょっとだけ関わっています。2より実践的な内容の第2弾です。実践開発ガイドこの本は、僕が著者になります。