promiseがあって、なぜasync、awaitが必要ですか?
962 ワード
非同期関数は、「async/await」とも呼ばれ、ES 6
この
ES 8はこのためにasync/awaitキーワードを提供しました.
Promise
モードのECMAScript関数での応用である.async/awaitはES 8仕様で追加されました.この特性は挙動と文法からJavaScriptを強化し、同期方式で書かれたコードを非同期的に実行できるようにする.この
Promise
は、タイムアウト後の値として処理される.let p = new Promise((resolve, reject) => setTimeout(resolve, 1000, 3));
このPromise
は、1000ミリ秒後に数値3として処理される.プログラム内の他のコードがこの値
でアクセスする場合、解決策を書く必要があります.let p = new Promise((resolve, reject) => setTimeout(resolve, 1000, 3));
p.then((x) => console.log(x)); // 3
これは実はとても不便です.他のコードは全部Promise
処理プログラムに入れなければならないからです.しかし、処理プログラムを関数として定義することができます.function handler(x) { console.log(x); }
let p = new Promise((resolve, reject) => setTimeout(resolve, 1000, 3));
p.then(handler); // 3
この改善は実はそれほど大きくないです.これは、このPromise
によって生成された値にアクセスする必要がある任意のコードが、この値を処理プログラムとして受信する必要があるからである.つまり、コードはそのまま処理プログラムに入れます.ES 8はこのためにasync/awaitキーワードを提供しました.