[Node.js] asyncとawaitの使い方

前回、Promiseの使い方で記事を書いたのですが、Node.jsで非同期処理をする際には、Promise then()を使うのは遅れているらしくて、、、(脆弱です)

前回の記事

[Node.js] Promiseの使い方

2018.09.22

詳細に言うと、Promiseは部分的に使うのですが、then()でコールバックを待ち受けせずに、

asyncとawaitを使います。

まあ、実際にPromise時と比較しながら見ていきましょう!

 

 

getCount()関数の中身を、比較していきます。

基本的な書き方の違い

Promiseの場合

.then()を使って、コールバックを待ちます。

async awaitの場合

関数定義の箇所にasyncをつける。

非同期関数の呼び出しの際に、awaitでコールバックの待ち受け。

これだけでもわかるように、async awaitを使った方が、より直感的に処理をかけます。

 

1回目の通信結果によって2回目の通信を行うか判断する場合の違い

1回目の通信結果によって、条件分岐し、さらに非同期処理を行う場合

Promiseの場合

従来のPromiseならネストが深くなってしまい、可読性が落ちる。

 

async awaitの場合

 

ネストが深くならないので、可読性は保ったまま。

2回目以降のコールバックの結果を、変数に入れることで次の処理がしやすい。(今回の場合は、num2に2回目の非同期処理の結果を格納している。)

何回も非同期処理する場合には、非常に便利です。

 

例外処理の実装の違い

Promiseの場合

コメントアウトでも書いてますが、非同期処理と同期処理の2つの場合の例外処理を書かないといけない。

 

async awaitの場合

一個の例外処理で問題ない。

 

まとめ

これは完全にasync awaitを使うべきですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA