非同期処理とは
非同期処理とは、あるタスクを実行している最中に、その処理を止めることなく別のタスクを実行できる方式を指します。特にJavaScriptではAjax(Asynchronous JavaScript and XML)という技術を用いた非同期処理が有名です。
JavaScriptは外部のAPIを叩く時などは基本的に非同期処理を行います。
画面を表示するときに、DBからデータを取得してから表示しようとするとデータを取得できるまでの間、白い画面が出ていることになります。(画面表示の処理に至っていない。)非同期処理をすることで、画面を表示させつつデータを取得できたら画面が補足されるということが可能になります。
非同期処理は、処理を一度バックグラウンドに移して実行しています。
しかし、バックグラウンド動かしている処理の中でも、「ある処理が終わったらこの処理を実行したい」ということがあります。(つまり、非同期で動かす処理の順番を制御したい。ある処理が終わるのを待ちたい。)
そこで使うのが、Promise
やasync/await
です。
async/await
直感的でわかりやすいので多くの場合、async/await
が使われます。
・非同期処理を伴う関数定義にasyncをつける。
・非同期処理を伴う関数実行時にawaitをつける。
・awaitはasync付きの関数内でしか使えない。
まとめ
Javascriptで外部APIを叩く処理を行うときは非同期処理になる。このときに非同期処理が完了するのを待ちたい場合にはasync/await
を使って制御する。