📖
【備忘録】return と return await の違い
この記事を書こうと思ったきっかけ
React でデータフェッチ部分を async で非同期関数を定義して、フェッチしてきたデータを返却するときに return data とするか return await data とするか迷った。
挙動は同じように見受けられたが、書き方による違い・よりベターな方を知りたかったため調査を行った。
先に結論から
return await を使う。で問題なさそう
書き方によって変わってくるところ
- 例外のキャッチ場所
- 処理時間
例外のキャッチ場所
try-catch ブロックとともに使用している前提
return の場合
- 関数の呼び出しもとでキャッチされる
- スタックトレースもその関数までとなる
return await の場合
- 関数内部でキャッチされる
- スタックトレースもより詳細になる
処理速度
- return await より return の方が若干早い
- マイクロタスクのタイミングの違いによるもの
再び結論
処理速度の観点では、return した方が早いがその差は微々たるものであり、エラー発生時の詳細度が高い return-await とした方がいい気がする。
参考にさせていただいた記事
Discussion