Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 소호정
- 발산맛집
- 커플
- 스테이크
- RED CAT COFFEE X LOUNGE
- 레스토랑
- 냥이
- 파머스테이블
- 치명적 귀여움
- 부모님과
- CodeJam 2017 Round 1B
- 스코티쉬 스트레이트
- 스파게티
- 먹기좋은곳
- 발산역 근처 카페
- codejam
- 냥스토리
- 양재맛집
- coffee
- 냥냥
- 소호정본점
- 발산
- 파버스
- A. Steed 2: Cruise Control
- CDJ
- 고양이는 언제나 귀엽다
- 안동국시
- 고양이
- 카페
- 데이트
Archives
- Today
- Total
hubring
async/await 본문
async/await
Promise를 더욱 쉽게 사용할 수 있도록 해주는 ES8문법.
이 문법을 사용하려면 함수의 앞부분에 async 키워드를 추가하고,
해당 함수 내부에서 Promise 앞부분에 await 키워드를 사용한다.
이렇게 하면 Promise가 끝날 때까지 기다리고, 결과 값을 특정 변수에 담을 수 있다.
function increase(number){
const promise = new Promise((resolve, reject)=>{
setTimeout(()=>{
const result = number+10;
if(result > 50){
const e = new Error('NumberTooBig');
return reject(e);
}
resolve(result);
}, 1000);
});
return promise;
}
async function runTasks(){
try{
let result = await increase(0);
console.log(result);
result = await increase(result);
console.log(result);
result = await increase(result);
console.log(result);
result = await increase(result);
console.log(result);
result = await increase(result);
console.log(result);
result = await increase(result);
}catch(e){
console.log(e);
}
}
아래 예제에서는 return 구문에 await 구문이 없다는 것에 주목하자. 이는 async function의 반환값이 암묵적으로 Promise.resolve로 감싸지기 때문이다.
async function getProcessedData(url) {
let v;
try {
v = await downloadData(url);
} catch (e) {
v = await downloadFallbackData(url);
}
return processDataInWorker(v);
}
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function
'Javascript > PureJS' 카테고리의 다른 글
Promise (0) | 2020.07.08 |
---|