Notice
Recent Posts
Recent Comments
Link
04-26 21:22
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 글로벌소프트웨어캠퍼스
- dbeaver
- 맥
- M2
- 우리FIS아카데미 #
- https
- Java
- AWS
- 우리FIS아카데미
- 맥OS
- 클라우드 서비스 개발 #
- 우리FISA
- spring
- 리눅스
- 맥북
- K-디지털트레이닝
- HTTP
- Gradle
- 클라우드 서비스 개발
- 로드밸런스
- springboot
- 도메인
- 우리FISA #
- 우리에프아이에스 #
- jdk
- sts
- route 53
- mysql
- 우리에프아이에스
Archives
- Today
- Total
<<개발일지>>
Promise 본문
Promise-개요
Promise는 복잡한 비동기 처리를 수행하는 프로그램을 작성할 때 코드 작성을 더 편리하게 할 수 있도록 제공되는 API로, V8 엔진에서 제공되는 스펙이다.
*Promise를 활용할 경우 Callback 패턴의 단점을 어느 정도 해소할 수 있다.
1. Promise 객체 초기화(생성)
Promise는 생성자 함수를 통해 생성할 수 있다.
const myPromise = new Promise();
2. Promise 객체가 관리하는 값
Promise 객체는 크게 두 가지 값을 관리한다.
- 비동기 처리 수행 여부에 따른 상태값
- 비동기 처리 결과값
정리하면, promise는 비동기 처리 상태와 처리 결과를 관리하는 객체
3. Promise를 활용한 비동기 처리
Promise 생성자 함수는 인수로 비동기 처리를 수행할 콜백 함수를 받음
-> ECMAScript에서는 이 콜백 함수를 executor function이라고 부른다.
const executor = () => {};
const myPromise = new Promise(executor);
이 콜백 함수 안에서 비동기 처리를 수행할 코드를 작성한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
const executor = () => {
const xhr = new XMLHttpRequest();
const url = '[https://jsonplaceholder.typicode.com/posts/1'](https://jsonplaceholder.typicode.com/posts/1');
xhr.open('GET', url);
xhr.send();
xhr.onload = () => {
if (xhr.status === 200) {
// 응답 성공
console.log(JSON.parse(xhr.response));
} else {
// 에러 처리
console.log(xhr.status);
}
}
};
const myPromise = new Promise(executor);
console.log(myPromise);
|
cs |
이 콜백 함수 executor는 비동기 처리 결과에 따른 후속 처리를 수행하기 위한 두 개의 콜백 함수를 자신의 인수로 전달받도록 동작한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
const executor = (resolve, reject) => {
const xhr = new XMLHttpRequest();
const url = 'https://jsonplaceholder.typicode.com/posts/1';
xhr.open('GET', url);
xhr.send();
xhr.onload = () => {
if (xhr.status === 200) {
// 응답 성공
console.log(JSON.parse(xhr.response));
console.log(resolve('성공'));
} else {
// 에러 처리
console.log(xhr.status);
console.log(reject('실패'));
}
}
};
|
cs |
- 요청 처리가 성공하였을 때 호출하는 resolve 콜백
- 요청 처리가 실패하였을 때 호출하는 reject 콜백
비동기 응답 처리가 성공할 경우 resolve를, 실패할 경우 reject 함수를 호출할 수 있다.
'JavaScript, TS' 카테고리의 다른 글
Promise- 후속 처리와 체이닝(Chaining) (0) | 2023.12.10 |
---|---|
Promise 객체의 상태 (0) | 2023.12.10 |
fetch API (1) | 2023.12.10 |
[Express.js] express.static() 정적 파일 서비스 (1) | 2023.12.03 |
동기와 비동기 (0) | 2023.12.01 |