Async今回は、非同期処理について見てみたいと思います。初心者のうちは必要がないんですが、これを知っていないと、初心者のままになりますので、形を覚えて行く感じです。今回の記事は、少し長めになってしまいました。いままでに3つ記事をUpしていますが、一番行数が少ない記事が一番アクセスが多いという記事あるある状態です。いうとき、必要かというと、例えばwebサービスのAPIを使いたいとかでしょうか。JSを上から順番にスクリプトを読ませているときは、問題なかったスクリプトが2秒後に変数が入ってくると途端に、うまく動かなくなります。そのあたりをいい具合に、処理してくれるのがPromiseです。エラーになったと思いますので、node10以上を使ってください。関数を作るときに、返り値に関数を返すものをコールバック関数というらしいです。擬似的に、ウエイトをかけるのに、よくsetTimeoutが使われます。これがwebからデータを取ってくる処理の代わりです。fetch、axios等のhttpを処理する命令がここに来ると思われますとりあえず、二秒後に引数valueが無事にとれれば、resolveが実行されます。失敗すれば、rejectが実行されます。成功すれば、thenにデータが流れてきます。catchに流れて来ます。Promiseは比較的あたらしい命令ですが、以前から別のコールバック関数が使われています。console.log(value)})第二引数に、コールバック関数を渡すことで、2秒かかっても問題なく処理できていることがわかります。どちらを使っても大して手間がかかりませんが、おおにして帰ってきたデータをそのままでは使えないので、加工したい場合が発生します。その場合は心配いりません、さらにコールバック関数を使えば処理できます。加工したければ、さらにコールバック関数を使えばいいのです、かなり複雑な処理ができるはずです。}})すいません、面倒そうなので、例は諦めました。それ以上はたぶん覚えていないでしょう。ましな書き方があると思いますが、孫やひ孫ができることには代わりありません。帰ってきたデータの処理をさらに加工したくなった場合は、thenで次の処理を書けばさらに加工できます。通常のコールバック関数と比べてみると、孫やひ孫に処理を頼んでいないことがわかります。すべて、息子である一郎、次郎、三郎に頼んでいて、一郎の孫やひ孫に処理を頼んでいません。これなら処理が続いても、同じ労力で済みます。連結と意味合いは変わりません。方が少しスマートに感じます.あと今まで、順番に処理をする必要があったので、7秒かけて処理をしていましたが、内容によっては、すべて別処理や最後だけ順番待ち等の処理があるかもしれません。いずれかが失敗したら、実行される処理});平行して、処理をしてくれるので、トータル3秒です。asyncと組み合わせて、asyncの中で使うと平行処理もできそうですね。このあたりの理解が進むと、次にやりたいことが見えてきそうです。がんばって、習得します。Qrunch.netサーバー提供フィードバックを送信する。