ES8 문법 - Async / Await
7748 단어 JavaScriptJavaScript
캡틴 판교
Async
// async를 함수 앞에 붙이면 함수가 promise 역활 가능
// 함수 실행 후에 promise 오브젝트가 남는다.
// 따라서, const promise = new Promise(); 생략하고 사용 가능.
// 그러나 성공만 가능
async function 더하기() {
return 1 + 1
//return을 붙히면 연산결과를 넘겨줄 수 있다.
}
더하기().then(function(a){
console.log(a);
})
더하기(); // 2;
Await
//await
//async 함수 안에서 쓰는 await => then대신 사용가능하다.
//promise 해결까지 기다려줌
async function 더하기() {
const promise = new Promise(function(resolve, reject){
const 힘든연산 = 1 + 1;
// resolve(100);
reject();
})
// try { 이걸 해보고 에러나면 } catch { 이걸 실행해주세요 }
try {
const 결과 = await promise;
console.log(결과);
//더하기().then(function(a){
// console.log(a);
// })
//의 축약버전이 await promise;
//힘든연산 결과값을 변수 결과에 간단하게 저장할 수 있다.
} catch {
console.log('연산이 잘 안되었군요!');
}
}
더하기(); // '연산이 잘 안되었군요!'
예시
// async를 함수 앞에 붙이면 함수가 promise 역활 가능
// 함수 실행 후에 promise 오브젝트가 남는다.
// 따라서, const promise = new Promise(); 생략하고 사용 가능.
// 그러나 성공만 가능
async function 더하기() {
return 1 + 1
//return을 붙히면 연산결과를 넘겨줄 수 있다.
}
더하기().then(function(a){
console.log(a);
})
더하기(); // 2;
//await
//async 함수 안에서 쓰는 await => then대신 사용가능하다.
//promise 해결까지 기다려줌
async function 더하기() {
const promise = new Promise(function(resolve, reject){
const 힘든연산 = 1 + 1;
// resolve(100);
reject();
})
// try { 이걸 해보고 에러나면 } catch { 이걸 실행해주세요 }
try {
const 결과 = await promise;
console.log(결과);
//더하기().then(function(a){
// console.log(a);
// })
//의 축약버전이 await promise;
//힘든연산 결과값을 변수 결과에 간단하게 저장할 수 있다.
} catch {
console.log('연산이 잘 안되었군요!');
}
}
더하기(); // '연산이 잘 안되었군요!'
예시
async, await를 활용해서 버튼을 클릭하면 콘솔창에 '잘 잘동되었군요!'나올 수 있게 코드 작성해보기.
async function button() {
let clickbtn = new Promise(function(resolve, reject) {
const btn = document.querySelector('.btn');
btn.addEventListener('click', ()=>{
resolve('잘 잘동되었군요!');
})
})
let result = await clickbtn;
console.log(result);
}
button(); // '잘 잘동되었군요!'
콘솔창
Author And Source
이 문제에 관하여(ES8 문법 - Async / Await), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@starkdy/JavaScript-ES6-문법-Async-Await저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)