Javascript 非同期 async/awaitの基本1

asyncキーワード

asyncキーワードは関数の前に置くことで、 async関数に変換します。 async関数は、 非同期コードとして使用されるawaitキーワードを、 使う機会を理解する関数です。 promiseは次の状態を意味します。 pending:初期状態、実行も拒否もされていません。 fulfilled:操作が正常に完了したことを意味します。 rejected:操作が失敗したことを意味します。 次のasync関数は、promiseを返します。 これはasync関数の一つです。

async function hello() { return "Hello World" }; hello();

次の式はasync 関数式です。

let hello = async function() { return "Hello World" }; hello();

アロー関数を使用することも出来ます。 次の式はasync 関数式です。

let hello = async () => { return "Hello" };

これらは基本的に同じことをします。 promiseがfulfillのときの値を使うため、 次の様に、.then()ブロックを使用できます。

hello().then((value) => console.log(value))

asyncキーワードが関数に追加されると、 値を直接返すのではなく、 promiseを返すようになります。

awaitキーワード

awaitは、 正規JavaScriptコードとして、async function 内でのみ使用され、 promiseにより、待つために使用されます。 awaitは、 非同期promiseベースの関数の前に配置して、 promiseが満たされるまでその行のコードを一時停止し、結果の値を返します。 async関数の実行により、 await式は、 promiseがfulfillあるいはrejectされるまで待つことになります。 promiseが履行された後、 async関数の実行が再開されます。 再開後は、await式のpromise値はfulfillになります。 promise がrejectの場合は、 await式はreject値をスルーします。 promise でないawaitオペレータをフォローしている式の値では、 解決後のpromiseに変換されます。

以上です。