[JS] Promise/async/await
1549 ワード
コールバック関数用に作成されたPromise
👩🎓 プロミスとは何ですか.
関数が実行されると、成功/失敗に基づいて次の操作を設定するマシンと見なすことができます.
📝 例
var promise = new Promise(function(resolve,reject){
var sum = 1+1
resolve(연산)
//꼭 성공 실패를 설정해줘야함
//성공시 then에 연산이라는 파라미터를 전송
});
promise.then(function(result){ //성공시 실행
}).catch(function(){ //실패시 실행
});
※ 성공/실패 판정 전에는 pending 이라고 나옴 (판정대기상태)
📝 もっと簡単var 성공실패판정기 = new Promise(function(성공,실패){
var 일더하기일하기 = 1+1
성공(연산)
});
promise.then(function(더한결과){ //성공시 실행
console.log(더한결과)
}).catch(function(실패결과){ //실패시 실행
console.log("실패했어요")
});
📖 使用するライブラリはajaxとaxiosです.async
👩🎓 Promiseを作成するのがおっくうなときに使うES 8構文です
📝 例
async function 더하기(){
1 + 1
}
더하기().then(function(결과){
console.log(결과,'더하기 성공했어요')
});
async構文は関数にしか貼り付けられませんが、貼り付けると自動的に関数をpromis関数に変換します.しかしasync構文の欠点は,成功時に実行に失敗した場合にのみ停止することである.
await
👩🎓 Promiseが成功したときに使用する構文で、Promiseが完了するのを待っています.
📝 例
async function 3초있다보내기(){
var 보내기 = new Promise((성공, 실패)=>{
setTimeout(function(){
성공("success")
},3000)
});
var 받기 = await 보내기;
console.log(받기);
}
3초있다보내기()
Promiseを送信して、成功した結果を受信変数に関連付けようとします.
結果に送信するのに3秒かかります
しかしconsoleは、3秒待つのではなく、送信と受信を接続します.
成功ではなく、コンソールが停止します(待機状態).
したがって,送信の3秒が終了すると,「受信」への接続を要求する.
Reference
この問題について([JS] Promise/async/await), 我々は、より多くの情報をここで見つけました https://velog.io/@jioo/ES6-Promise-문법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol