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 |
Tags
- 발산
- 데이트
- 발산맛집
- 소호정본점
- 파버스
- 발산역 근처 카페
- 스파게티
- 소호정
- 먹기좋은곳
- A. Steed 2: Cruise Control
- 부모님과
- 스테이크
- 냥냥
- coffee
- 레스토랑
- RED CAT COFFEE X LOUNGE
- 스코티쉬 스트레이트
- 고양이는 언제나 귀엽다
- 고양이
- 카페
- 안동국시
- codejam
- CDJ
- 냥이
- CodeJam 2017 Round 1B
- 파머스테이블
- 치명적 귀여움
- 커플
- 양재맛집
- 냥스토리
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
async function
async function 선언은 AsyncFunction객체를 반환하는 하나의 비동기 함수를 정의합니다. 비동기 함수는 이벤트 루프를 통해 비동기적으로 작동하는 함수로, 암시적으로 Promise를 사용하여 결과를 반환
developer.mozilla.org
'Javascript > PureJS' 카테고리의 다른 글
Promise (0) | 2020.07.08 |
---|