비동기 프로그래밍 & Promise

누리·2022년 10월 16일
0

API호출

목록 보기
1/4

비동기적(Asynchronous)란?

일반적으로 프로그램의 코드는 한번에 한가지 사건만 발생하면서 순차적으로 진행된다.
요즘 컴퓨터가 여러개의 프로세서를 돌리는 시대에서 이러한 상황은 컴퓨터의 성능을 효율적으로 쓰지 못하는 처사이다.

비동기 프로그래밍이란 이를 개선하여 다른 코어 프로세서에서 다른 작업들을 움직이게하고 작업이 완료되면 알려줄 수 있어 기다림없이 다른 작업을 수행합니다. 이러한 작업을 비동기적으로 실행할 수 있는 API를 제공하는 것이 프로그래밍 환경(웹 브라우저)에 달려있다

'어떤 코드를 비동기 방식으로 실행시키고 싶다'
=== 이 코드의 실행이 완료될 때 까지 기다리지 않고, 다음 코드를 실행시킨다. 그리고 이 코드의 실행이 완료(성공/실패)되면, 특정코드를 실행시킨다.

  • new Promise((resolve,reject) => {비동기방식으로 실행시킬 코드})

Promise란 ?

Promise는 자바스크립트에서 제공하는 비동기를 간편하게 처리할 수 있게 도와주는 객체이다.
자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미한다.

사용방법 : Promise()

새로운 Promise객체를 생성하고, 프로미스를 지원하지 않는 함수를 감쌀 때 사용한다
기본구조는 다음과 같다

const promise = new Promise((resolve, reject) => {
	//처리 내용
});

프로미스 객체의 인수로는 함수를 받는데, 이 함수 내부에 비동기 처리 코드를 작성한다. resole 인자는 비동기 처리의 성공을 알리는 함수이고 reject인자는 비동기 처리의 실패를 알리는 함수이다.
결과에 따라 Promise객체가 알아서 전달해준다.

사용방법 : then, catch

앞서 비동기 처리의 결과가 성공이면 resolve 함수의 결과를 받는 것은 then 메소드이고
실패결과인 reject는 catch메소드가 받는다. 비동기 콜백 작업 이후 실행하게 해주는 finally메소드도 존재한다

const flag = true;
const promise = new Promise(((resolve, reject) => {
    if (flag) {
        resolve('resolve가 되었음');
    }
    else {
        reject('reject가 되었음');
    }
}));

promise.then((resolveMessage) => {
    console.log(resolveMessage);
})
.catch((errorMessage) => {
	console.log(errorMessage);
});
profile
프론트엔드 개발자

0개의 댓글