엘리스 SW 엔지니어 트랙 4주차(3)

ChanghyeonO·2023년 3월 28일
0

Promise를 대체할 수 있는 ES8 문법이 존재한다.
async/await이라는 키워드인데 Promise와 then을 매우 쉽게 만들어준다.

async 키워드 사용시 Promise 오브젝트가 생성된다.

async function difficultCal () {
	1 + 1
};

difficultCal().then(function(){
	console.log("더하기 성공");
});

이렇게 함수 앞에 async 키워드만 하나 붙여줘도 Promise가 된다.
그래서 이 함수를 실행할 때 .then()을 붙일 수 있다.

async function difficultCal () {
	return 1 + 1
};

difficultCal().then(function(a){
	console.log("더하기 성공" + a);
});

return을 사용하게 되면 연산 결과를 then 내부에서 사용할 수 있게 된다.

then()대신 await 키워드 사용
async 키워드를 사용한 함수는 await이 사용가능하다.
await은 .then() 대용품이며 then보다 간단하다.

async function plus(){
	let difficultCal = new Promise((resolve, reject))
	let	plusResult = 1 + 1;
    resolve(plusResult);
	});
let result = await difficultCal;
console.log(result);
};
plus();

await 사용예시
resolve()안에 있던 파라미터는 let result라는 변수에 저장된다.
비동기식 처리되는 코드를 담는다면 await 기다리는 동안 브라우저가 멈출 수 있다.

await는 실패하면 에러가 나고 코드가 멈춘다.
때문에 코드 실행을 멈추고 싶지 않을 때 try catch라는 자바스크립트 문법을 사용할 수 있다.

async function plus(){
	let difficultCal = new Promise((resove,reject) => {
    reject();
});

try { let result = await difficultCal}
catch { difficultCal Promise가 실패할 경우 실행할 코드 }

try catch라는 자바스크립트 문법인데,
try{} 안의 코드가 에러 나고 멈출경우 catch{} 내부 코드를 실행해준다.

profile
꾸준한 기록을 통해, 좋은 개발자가 되겠습니다.

0개의 댓글