async function getName() {
//return Promise.resolve("Tom");
throw new Error("err...");
}
getName().catch((err) => {
console.log(err);
});
//await : async함수 내부에서만 사용가능
function getName(name) {
return new Promise ((resolve, reject) => {
setTimeout(() => {
resolve(name);
}, 1000);
});
}
async function showName(){
const result = await getName('Mike');
console.log(result);
}
console.log("시작");
showName();
const f1 = () => {
return new Promise((res, rej)=> {
setTimeout(() => {
res("1번 주문 완료");
}, 1000);
});
};
const f2 = (message) => {
console.log(message);
return new Promise((res, rej)=> {
setTimeout(() => {
res("2번 주문 완료");
}, 3000);
});
};
const f3 = (message) => {
console.log(message);
return new Promise((res, rej)=> {
setTimeout(() => {
res("3번 주문 완료");
}, 2000);
});
};
async function order(){
const result1 = await f1();
const result2 = await f2(result1);
const result3 = await f3(result2);
console.log(result3);
console.log("종료");
}
order();
→ Promise/then 보다 async/await 를 썼을 때 가독성이 좋다.
const f1 = () => {
return new Promise((res, rej)=> {
setTimeout(() => {
res("1번 주문 완료");
}, 1000);
});
};
const f2 = (message) => {
console.log(message);
return new Promise((res, rej)=> {
setTimeout(() => {
//res("2번 주문 완료");
rej(new Error("err.."));
}, 3000);
});
};
const f3 = (message) => {
console.log(message);
return new Promise((res, rej)=> {
setTimeout(() => {
res("3번 주문 완료");
}, 2000);
});
};
console.log("시작");
async function order() {
try{
const result1 = await f1();
const result2 = await f2(result1);
const result3 = await f3(result2);
console.log(result3);
} catch (e) {
console.log(e);
}
console.log("종료");
}
order();
반응형
'Javascript' 카테고리의 다른 글
자바스크립트 중급 18 - Generator (0) | 2023.06.21 |
---|---|
자바스크립트 중급 16 - 프로미스(Promise) (0) | 2023.06.21 |
자바스크립트 중급 15 - 클래스(Class) (0) | 2023.06.21 |
자바스크립트 중급 14 - 상속, 프로토타입(Prototype) (0) | 2023.06.16 |
자바스크립트 중급 13 - call, apply, bind (0) | 2023.06.14 |