on
비동기
비동기
<비동기 처리> : 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성
console.log("hello")
setTimeout(function() {
console.log('Bye')
}, 3000)
console.log("hello again")
>>hello
hello again
Bye
function fetchItems() {
return new Promise(function(resolve, reject) {
var items = [1,2,3]
resolve(items)
})
}
async function logItems(){
var resultItems = await fetchItems();
console.log(resultItems)
}
: 자바스크립트 비동기처리에 사용되는 객체
프로미스의 3가지 상태(states)
1. Pending(대기)
new Promise(function(resolve, reject){
//
});
2. Fulfilled(이행)
new Promise(function(resolve, reject){
resolve();
});
then()을 이용하여 처리 결과 값을 받을 수 있음
3. Rejected(실패)
new Promise(function(resolve, reject){
reject();
});
catch()로 실패 이유를 받을 수 있음
ex) function getData(){
return new Promise(function(resolve, reject) {
var data = 100;
resolve(data);
});
}
getData().then(function(resolvedData) {
console.log(resolvedData);
}).catch(function(err) {
console.log(err);
});
장점 - 코드가 꼬리를 물지 않고 가독성이 높아짐. 기존의 비동기 처리 코드 방식으로 사고하지 않아도 됨
async function 함수명() {
await 비동기_처리_메소드_명();
};
async - 예약어
await - 비동기 처리 메소드 앞에 붙임
*비동기 처리 메소드는 반드시 Promise 객체를 반환
예외 처리 - try catch문을 사용
from http://jengju97.tistory.com/54 by ccl(A) rewrite - 2021-11-28 00:27:16