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
- 자바스크립트 클래스
- 자바스크립트 innertext
- 자바스크립트 스코프
- html 주석
- 자바스크립트 연산자
- 프론트엔드
- CSS
- 자바스크립트 생성자 함수
- 자바스크립트 onclick
- javascript
- front-end
- css display
- 자바스크립트
- HTML
- css3
- 자바스크립트 dom 문법
- 자바스크립트 실행 컨텍스트
- 자바스크립트 scope
- javascript opreator
- 웹 개발 트렌드
- html 코드
- 자바스크립트 innerhtml
- javascript opreators
- 자바스크립트 반복문
- 자바스크립트 dom의 목적
- 티스토리챌린지
- 오블완
- 자바스크립트 상속
- css position
- css 포지션
Archives
- Today
- Total
Multi Developer SuHo
자바스크립트 Async & Await (비동기 프로그래밍 문법) 본문
SMALL
안녕하세요 자바스크립트 내용 마지막인 Async & Await 에 대해 알아보겠습니다.
우선 async & await에 대한 개념부터 알아보겠습니다.
async & await 란? -> 자바스크립트의 비동기 처리 패턴 중 최신의 패턴으로, 프로미스가 비동기 처리를 좀 더 편리하게 해주었다면, async/await는 프로미스를 더욱 쉽게 사용할 수 있게 해줍니다.
모든 설명과 소스 해석은 주석으로 처리하였습니다.
/**
* Async & Await (비동기 프로그래밍 문법)
* async 함수는 함수 앞에다가 작성하면 함수 안에 await를 실행할 수 있다.
* await를 쓰면 다음 코드가 await를 한 함수가 끝날 때까지 실행되지는 않지만, 쓰레드를 막고 있지는 않다.
* 따라서 선언한 함수 외에 다른 함수가 실행될 것이 있다면 그 함수는 실행이 될 수가 있다.
* await는 promise에만 사용 할 수가 있다.(promise로 만드는 함수만 가능)
*
*/
reject 매개변수를 사용한 소스코드
const getPromise = (seconds) => new Promise((resolve, reject) => {
setTimeout(() => { // 입력한 숫자만큼 기다리는 함수
reject('에러')
}, seconds * 1000);
});
async function Winner(){ // try catch 문으로 에러를 잡는다.
try{
const result1 = await getPromise(3); // getPromise를 실행하여 3초를 기다리는 함수를 실행 할때
console.log(result1); // 3초뒤 'Pass'가 출력된다.
const result2 = await getPromise(2);
console.log(result2);
const result3 = await getPromise(1);
console.log(result3);
}catch(e){
console.log('----- catch e------')
console.log(e); // result1, result2, result3 전부 출력이 안됨
} finally{
console.log('----- finally------')
}
}
Winner();
resolve 매개변수 사용한 소스코드
const getPromise = (seconds) => new Promise((resolve, reject) => {
setTimeout(() => { // 입력한 숫자만큼 기다리는 함수
resolve('에러')
}, seconds * 1000);
});
async function Winner(){ // try catch 문으로 에러를 잡는다.
try{
const result1 = await getPromise(3); // getPromise를 실행하여 3초를 기다리는 함수를 실행 할때
console.log(result1); // 3초뒤 'Pass'가 출력된다.
const result2 = await getPromise(2);
console.log(result2);
const result3 = await getPromise(1);
console.log(result3);
}catch(e){
console.log('----- catch e------')
console.log(e); // result1, result2, result3 전부 출력이 안됨
} finally{
console.log('----- finally------')
}
}
Winner();
try catch 문을 사용하기전 실행한 코드
const getPromise = (seconds) => new Promise((resolve, reject) => {
setTimeout(() => { // 입력한 숫자만큼 기다리는 함수
resolve('Pass')
}, seconds * 1000);
});
async function Winner(){
const result1 = await getPromise(3); // getPromise를 실행하여 3초를 기다리는 함수를 실행 할때
console.log(result1); // 3초뒤 'Pass'가 출력된다.
const result2 = await getPromise(2);
console.log(result2);
const result3 = await getPromise(1);
console.log(result3);
}
Winner();
console.log('종료합니다'); // '종료합니다' 먼저 출력된다. 이유 -> await를 했을 때 쓰레드(thread)가 막히지 않는다는 뜻이랑 같다.
LIST
'JavaScript' 카테고리의 다른 글
Babel(바벨)이란? (0) | 2024.12.21 |
---|---|
자바스크립트 Callback hell and Promise(콜백헬 그리고 프로미스) (0) | 2024.01.24 |
자바스크립트 비동기 프로그래밍(asynchronous programming), 동기 프로그래밍(Synchronization Programming) (0) | 2024.01.20 |
자바스크립트 Closure(클로저) (0) | 2024.01.19 |
자바스크립트 Execution Context (실행 컨텍스트) (0) | 2024.01.11 |