javascript promise
6227 ワード
承諾(=承諾、可能性)
A Promise is an object representing the eventual completion or failure of an asynchronous operation.
promiseは、非同期操作が最終的に成功または失敗したことを示すオブジェクトです.
cf>非同期操作
コードがA->B->C順に書き込まれると、JavaScriptはA->B->C順に実行されます.
BはAが終わるまで運転しません.
つまり,タスクがまだ終了していなくてもJavaScriptは待機せず,次のタスクを実行する.
しかしこれでは,Aで演算した結果,Bで用いられる論理である場合に大きな問題となる.
使用理由
使用方法
function getData() {
return new Promise(function(resolve, reject) {
const data = 100;
resolve(data);
});
}
// resolve()의 결과 값 data를 resolvedData로 받음
getData().then(function(resolvedData) {
console.log(resolvedData); // 100
});
function getData() {
return new Promise(function(resolve, reject) {
reject(new Error("Request is failed"));
});
}
// reject()의 결과 값 Error를 err에 받음
getData().then().catch(function(err) {
console.log(err); // Error: Request is failed
});
async await
functionの前にasyncを付けると、この関数は常にpromiseを返します.
承諾の値ではなく、解決された承諾を返します.
waitキーワードを使用するターゲットがpromiseでない場合は、自動的にPromiseが行われます.resolve()の値を返します
=>承諾でなくてもawaitを使用して同期作業を行うことができます.
async function foo() {
return "foo"
}
foo().then((value)=>alert(value)); // foo
Reference
この問題について(javascript promise), 我々は、より多くの情報をここで見つけました https://velog.io/@rud285/javascript-promiseテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol