質問: await axios.get({}) return data } ``` このように、async/awaitを用いることで非同期処理を簡潔に記述することができます。 そこで疑問なのですが、asyncがついた関数(doVote)は非同期関数となってしまうのでしょうか? というのもVueのcreated関数にasyncを用いているコードを見つけたため、気になりました。 簡単な質問かもしれませんがどうかよろしくお願いします。
回答: async/awaitは単純にPromiseを使った糖衣構文なので もう少し原理を学習した方が良いでしょう。 > > asyncがついた関数(doVote)は非同期関数となってしまうのでしょうか? > > > 実行自体は同期的ですが、 async関数の戻り値は必ずPromiseのインスタンスになります。 関数の中身をまるっとPromiseでくくってreturn値だったものがresolve実行に変更される事になります。 質問文のコードをasync無しPromiseのみで書き直すとこんな感じのコードになります。 実際にはこれが実行されていると考えて下さい。 ``` const doVote = () => new Promise(resolve => { axios.get({}) .then(data => resolve(data)); }); ```