일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- K-MOOC
- 컴파일시스템
- StringTokenizer
- 디스크블록할당
- CSS 기초
- StringBuilder
- 자바문자열구분
- 시스템프로그래밍
- attribute
- 딥러닝
- biginteger사용법
- 자바스크립트
- 머신러닝
- national instruments
- 블록체인
- 단국대학교 k-mooc
- html기초
- 티스토리챌린지
- 2차원배열정렬
- Entity
- 블록체인강의
- 오블완
- 자바입력받기
- K-MOOC 단국대학교 홍보단
- 해시
- Node
- stringreader
- 블록체인 강의
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- 우선순위큐
- Today
- Total
열정 실천
[JavaScript] Promise 본문
비동기 처리 작업 기능을 하는 Promise 객체를 사용하면 작업이 용이해질 뿐만 아니라 코드의 가독성도 좋아진다.
when?
프로미스는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용한다.
🎇Promise의 장점
- 비동기 처리 시점을 명확하게 표현할 수 있다.
- 연속된 비동기 처리 작업의 수정, 삭제 추가가 편하다.
- 비동기 작업 상태를 쉽게 확인할 수 있다.
- 코드의 유지 보수성이 증가한다
Promise 생성자의 인수는 비동기 처리 작업을 하는 함수를 지정하며,
함수 내부에서 비동기 처리 완료 메소드인 resolve()와 reject()를 호출한다.
📌 객체 생성
const promise = new Promise(function (resolve, reject) {
});
이렇게 생성된 promise 객체는 두 가지의 내부 프로퍼티를 가진다.
- state : 처리 상태
- result : 결과값
resolve가 실행됐을 때에는
- state : fulfilled
- result : value
reject가 실행됐을 때에는
- state : rejected
- result : error
이다.
이를 통해 현재 제작 코드의 진행 상황(promise.state) 과 결과 값(promise.result)을 확인할 수 있다.
📌 resolve()와 reject() :: 콜백 함수가 잘 기능하고 결과가 성공이면 resolve를 실패하면 reject를 호출한다.
const promise = new Promise( (resolve, reject) => {
if(val === true){
resolve('ok');
}else(val === false){
reject('nope');
}
});
📌 then() :: 보통 resolve된 상태일 때 호출한다.
promise.then( (value) => {
});
📌 then() :: reject 된 상태일 때 호출한다.
promise.catch( (value) => {
});
📌📌📌 최종 코드
const promise = new Promise( (resolve, reject) => {
if(val === true){
resolve('ok');
}else(val === false){
reject('nope');
}
});
promise.then( (value) => {
console.log(value); // 결과 : 'ok'
});
promise.catch( (value) => {
console.log(value); // 결과 : 'nope'
});
✔ Promise 생성자는 매개변수는 콜백함수이다.
✔ 콜백 함수는 resolve와 reject 두 개의 매개변수를 받는다.
'개발 공부 > JS' 카테고리의 다른 글
[JavaScript] 스코프(Scope)란? - 함수 스코프 vs 블록 스코프 (0) | 2023.07.19 |
---|---|
[JavaScript] JSON - JSON.parse, JSON.stringify (0) | 2023.05.18 |
[JavaScript] CallBack 함수 (0) | 2023.05.18 |
[JavaScript] 데이터 처리 방식 (동기와 비동기) (0) | 2023.05.15 |
[JavaScript] 자바스크립트 - 시간 다루기 (setInterval(), padStart() ) (0) | 2023.05.15 |