비동기

비동기

<비동기 처리> : 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성

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