今すぐコースを受講しましょう
今すぐ登録して、23,200件以上登録されている、業界エキスパート指導のコースを受講しましょう。
Promiseを使った非同期処理のやり方
こんにちは、フロントエンド開発や Web 技術についての 執筆、講習を行っている 野中文雄です。 今週は新しい promise クラスで Web API からデータを読み込む 非同期処理について説明します。 Web API を使って データを読み込むんですけど API はこのOpen Notify という サイトのものを利用したいと思います。 ドメインが open-notify.org ですね。 これは NASA のデータが読み込める ということで ちょっと先進的な感じがするんですけど その中の Number of People in Space 宇宙に何人、人がいるかということで 六人いるらしいんですが この六人のデータが取れる API というのが ここから提供されています。 こちらがその JSON をとってくる URI なんですけど データがどういう形になっているかというと これですね。 これがサンプルなんですが、 message に 成功すれば success ですね。 それから number、 ここは実際に例えば六人とかと いう数字がでてきます。 あとこの people というのが 配列になっているんですけど 実際にその宇宙にいる人たちの 名前とクラフトというのが提供されています。 具体的にはというと じゃあ開けてみましょうか。 こんな感じですね。 message success です。 number は6ということで people に配列で 6名のデータ、プロパティが2つずつ が入っている。 これを JavaScript のコードで 読み込んでみたいと思います。 ではこの URL、 これはコピーしておきましょう。 コピーした URL は 早速変数に入れておきます。 const で url で 今コピーした URL を ペーストします。 そして読み込む処理は 関数にしましょう。 function ということで getSpacePeople 引数は url とします。 さて、この中に処理を書くんですが 非同期の処理を扱う時には XMLHttpRequest という クラス、オブジェクトを使います。 それをまずインスタンスを作って 変数に入れるんですけど request ということで new の XMLHttpRequest、長いですね。…
エクササイズファイルを使って実践してみましょう。
インストラクターがコースで使用しているファイルはダウンロードできます。見て、聞いて、練習することで、理解度を深めることができます。
- project_file_01_arrow_function.zip
- project_file_02_arrow_this.zip
- project_file_03_onload.zip
- project_file_04_event_listener.zip
- project_file_05_get_postage_weight.zip
- project_file_06_default_value.zip
- project_file_07_callback_function.zip
- project_file_08_set_digits.zip
- project_file_09_let_number_comma.zip
- project_file_10_calc_age_birthday.zip
- project_file_11_jquery_dropdown_list.zip
- project_file_12_jquery_dropdown_function.zip
- project_file_13_query_dropdown_option.zip
- project_file_14_array_for_each.zip
- project_file_15_array_from.zip
- project_file_16_array_entries_forof.zip
- project_file_17_array_search.zip
- project_file_18_array_from_fill.zip
- project_file_19_ecmascript6_array.zip
- project_file_20_ecmascript6_date.zip
- project_file_21_copy_object.zip
- project_file_22_copy_object_json.zip
- project_file_23_promise_webapi.zip
- project_file_24_rxjs_observable.zip
- project_file_25_happy.zip
- project_file_26_premium.zip
- project_file_27_object.zip
- project_file_28_arrow.zip
- project_file_29_get_set.zip
- project_file_30_array_reduce.zip
- project_file_31_array_map.zip
- project_file_32_array_valiation.zip
- project_file_33_spread.zip
- project_file_34_parameter.zip
- project_file_35_separate.zip
- project_file_36_every_bit.zip
- project_file_37_bit_shift.zip
- project_file_38_rgb_color.zip
- project_file_39_rgb_16.zip
- project_file_40_dom.zip
- project_file_41_array_every.zip
- project_file_42_bit.zip
- project_file_43_fetch_api.zip
- project_file_44_fetch_error.zip
- project_file_46_async_api.zip
- project_file_47_rxjs_mouse.zip
- project_file_48_rxjs_api.zip
- project_file_49_function.zip
- project_file_50_animation.zip
- project_file_51_variables.zip
- project_file_52_set.zip
- project_file_53_counter.zip
- project_file_54_picker.zip
- project_file_55_align.zip
- project_file_56_letter.zip
- project_file_57_random2.zip
- project_file_58_color.zip
- project_file_59_filter.zip
- project_file_60_delete.zip
- project_file_61_style.zip
- project_file_62_blank.zip
- project_file_63_multi.zip
- project_file_64_field.zip
- project_file_65_insert.zip
- project_file_66_random.zip
- project_file_67_jason.zip
- project_file_69_axios.zip
- project_file_70_date.zip
- project_file_71_customize.zip
- project_file_72_condition.zip
目次
-
-
-
(ロック済み)
条件の組み立て方7分59秒
-
(ロック済み)
条件の最適化6分
-
(ロック済み)
うるう年をDateオブジェクトで調べる6分17秒
-
(ロック済み)
JavaScriptライブラリaxiosで非同期通信をする7分42秒
-
(ロック済み)
オブジェクトの分割代入4分30秒
-
(ロック済み)
分割代入によるJSONデータの取り出し5分14秒
-
(ロック済み)
配列のランダムな並べ替え9分52秒
-
(ロック済み)
要素をつくって挿入する5分9秒
-
(ロック済み)
入力フィールドのテキストを要素として挿入する4分49秒
-
(ロック済み)
複数の要素を入れ子にして挿入する5分28秒
-
(ロック済み)
テキストの空白の扱い5分27秒
-
(ロック済み)
要素のスタイルを動的に変える7分
-
(ロック済み)
要素を削除する7分2秒
-
(ロック済み)
要素をフィルタリングする9分58秒
-
(ロック済み)
カラーをランダムに定める7分41秒
-
(ロック済み)
色相をランダムに定める3分53秒
-
(ロック済み)
英字の大文字・小文字を切り替える2分49秒
-
(ロック済み)
文字列の桁を揃える4分47秒
-
(ロック済み)
カラーピッカーを使う6分26秒
-
(ロック済み)
オブジェクトでカウンターをつくる3分50秒
-
(ロック済み)
get/setメソッドを定める7分48秒
-
変数値を外から隠す4分53秒
-
(ロック済み)
要素をアニメーションさせる5分50秒
-
(ロック済み)
三角関数を使ったアニメーション4分4秒
-
(ロック済み)
RxJS 6でweb APIにアクセスする5分5秒
-
(ロック済み)
RxJS 6でマウスクリックを扱う7分
-
(ロック済み)
async function式でweb APIにアクセスする6分16秒
-
(ロック済み)
async function式を使ってみる7分14秒
-
(ロック済み)
fetch()メソッドでエラーを扱う3分59秒
-
(ロック済み)
fetch()メソッドでweb APIにアクセスする5分18秒
-
(ロック済み)
ビット演算をフラグに使う7分2秒
-
複数ボタンのクリックをArray.every()メソッドで調べる5分33秒
-
(ロック済み)
DOM要素にTypedArray.forEach()メソッドを使う5分12秒
-
(ロック済み)
16進数カラー値からRGB成分値を取り出す4分27秒
-
(ロック済み)
RGB成分値からカラー値を求める4分56秒
-
(ロック済み)
ビットのシフト演算子を使う5分37秒
-
(ロック済み)
ビットごとの演算を試す6分2秒
-
(ロック済み)
分割代入を使う5分13秒
-
(ロック済み)
残余引数を定める4分39秒
-
(ロック済み)
スプレッド構文を使う5分48秒
-
(ロック済み)
Arrayのメソッドで標準偏差を求める4分7秒
-
Array.map()メソッドを使う4分3秒
-
(ロック済み)
Array.reduce()メソッドを使う4分2秒
-
(ロック済み)
オブジェクトにget/setメソッドを定める3分6秒
-
(ロック済み)
オブジェクトに定めるアロー関数式のメソッド4分26秒
-
(ロック済み)
オブジェクトリテラルの新しい構文5分12秒
-
(ロック済み)
プレミアムフライデーを調べる6分46秒
-
(ロック済み)
ハッピーマンデーを調べる5分24秒
-
(ロック済み)
RxJSのObservableを使った非同期処理のやり方7分52秒
-
(ロック済み)
Promiseを使った非同期処理のやり方9分36秒
-
(ロック済み)
参照は残さずオブジェクトを複製するテクニック5分43秒
-
オブジェクトを複製する方法6分39秒
-
(ロック済み)
ECMAScript 6でDateクラスを継承する9分37秒
-
(ロック済み)
ECMAScript 6でArrayクラスを継承する7分34秒
-
(ロック済み)
配列要素に初期値を与える新しいメソッドの使い方5分27秒
-
(ロック済み)
配列要素を検索する新しいメソッドの使い方9分26秒
-
(ロック済み)
新しいfor...of文を使ったループ処理のし方5分5秒
-
(ロック済み)
Array.from()メソッドで配列のようなオブジェクトを扱う6分58秒
-
(ロック済み)
for文をArray.forEach()メソッドに置き換える9分37秒
-
(ロック済み)
jQueryプラグインで複数選択リストをつくる10分6秒
-
(ロック済み)
jQueryプラグインでドロップダウンリストに機能を加える8分40秒
-
jQueryでドロップダウンリストを操作する9分25秒
-
(ロック済み)
生年月日から満年齢を計算する11分15秒
-
(ロック済み)
関数の再帰呼び出しで数字をカンマ区切りにする9分26秒
-
(ロック済み)
数字の前に0を加えて桁揃えする8分43秒
-
(ロック済み)
コールバック関数があることを確かめてから呼び出す8分47秒
-
(ロック済み)
変数や関数の引数にデフォルト値を定める8分33秒
-
(ロック済み)
郵便料金を条件判定する関数のつくり方9分31秒
-
(ロック済み)
ドキュメントの読み込みをイベントリスナーで待つ7分4秒
-
(ロック済み)
ドキュメントの読み込みをonloadハンドラで待つ7分14秒
-
(ロック済み)
アロー関数式のthis参照はfunctionとどう違うのか8分5秒
-
functionをアロー関数式に書き替えるには8分7秒
-
(ロック済み)