はじめに
今年フロントエンドエンジニアに転職して、自分が学習した非同期関数についてまとめたいと思います。
もし解釈が間違っている&補足など、アドバイスがあれば教えていただきたいです!
非同期関数とは
javascriptは基本的に一つの処理しかできず、並行処理ができません
javascriptの非同期処理で使用するメソッドは主に(async・await・Promise)の3つ存在します。
async :
・非同期関数の宣言に使用します。asyncを関数の前に付けることで、その関数の返り値Promiseにします。
await :
・非同期処理が終了するのを待機します。
・awaitはasync関数内でのみ使用でき、ます。そのため、次の処理で返り値を使うことができます。
Promise :
・非同期処理の結果を表現するオブジェクトです。Promiseは3つの状態を持ちます。
・pending: 未解決(処理が終わるのを待っている状態)
・resolved: 解決済み(処理が完了し、無事成功した状態)
・rejected: 拒否(処理が失敗した状態)
・Promise.all(): 複数のPromiseがすべて解決されるのを待ち、その結果を返します。すべてのPromiseが成功した場合は、成功した結果の配列が得られます。
非同期関数はどのような場面で使用するのか
ログイン処理 :
ログインして大丈夫なユーザかチェックする時、ログイン処理に時間がかかることがあります。特にモバイルアプリの場合は画面の処理が遅いとユーザが待ち時間にイライラすることがありますので、先にログイン後の画面を表示させて、その間にユーザチェックを行います
javascriptの処理を早くするにはAWSのLambdaを使用!!
非同期処理でバックエンドに問い合わせて、AWSのLambdaで処理をする。すべての処理が返ってくるのをPromise.Allで待機する。
AWS LambdaはAWS側のサーバーで一つのLambdaが一つのPCとして考えるので、並行処理になり、複数の処理を同時に実行することができ全体の処理時間を短縮できます。
さいごに
閲覧いただきありがとうございました!
私の非同期処理の理解について間違っていたら、ぜひコメントで教えていただきたいです。
また、今回はコードで具体的に説明できなかったので、次回非同期処理について触れる時はコードも含めて説明できるようにします!!