티스토리 뷰
반응형
Promise
비동기 작업의 최종 완료 또는 실패를 나타내는 객체
함수에 콜백을 전달하는 대신, 콜백을 첨부하는 방식
예시
더보기
1. 기존 방식
function successCallback(result) {
console.log("Audio file ready at URL: " + result);
}
function failureCallback(error) {
console.log("Error generating audio file: " + error);
}
createAudioFileAsync(audioSettings, successCallback, failureCallback);
2. Promise 반환 방식
createAudioFileAsync(audioSettings).then(successCallback, failureCallback);
3. 조금 더 간단한 방식
const promise = createAudioFileAsync(audioSettings);
promise.then(successCallback, failureCallback);
Promise의 특징
- 자바스크립트 이벤트가 현재 실행중인 콜 스택을 완료하기 이전에 절대 호출하지 않음
- 비동기 작업이 성공하거나 실패한 뒤에 then() 을 이용하여 추가한 콜백의 경우도 위와 같음
- then()을 여러번 사용하여 여러개의 콜백을 추가할 수 있음
- 각각의 콜백은 주어진 순서대로 하나하나 실행됨
Chaining
보통 두 개 이상의 비동기 작업을 순차적으로 실행해야 하는 상황
순차적으로 각각의 작업이 이전 단계 비동기 작업이 성공하고나서 결과값으로 다음 비동기 작업을 실행해야 하는 경우에
promise chain을 이용하여 해결함
const promise = doSomething();
const promise2 = promise.then(successCallback, failureCallback);
혹은
const promise2 = doSomething().then(successCallback, failureCallback);
promise2는 doSomething() 뿐만 아니라, successCallback 또는 failureCallback의 완료를 의미함
successCallback 이나 failureCallback이 promise를반환하는 비동기함수라면,
promise2에 추가된 콜백은 successCallback 이나 failureCallback에 의해 반환된 promise뒤에 대기함
반응형
'Language > JavaScript' 카테고리의 다른 글
[Do It!] 04. 객체 [배열 객체, 문자열 객체] (1) | 2023.12.28 |
---|---|
[Do It!] 04. 객체 [기본 객체, 내장 객체-날짜 객체,수학 객체] (1) | 2023.12.22 |
[Do It!] 03. 제어문 [조건문, 선택문, 반복문] (1) | 2023.12.18 |
[Do It!] 02. 자바스크립트 기초 문법 [연산자] (0) | 2023.11.17 |
[Do It!] 02. 자바스크립트 기초 문법 [변수] (2) | 2023.11.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Date 클래스
- 함수
- 역반복문
- Calendar 클래스
- Objects 클래스
- Arrays 클래스
- 리스트
- 포장 클래스
- 스레드 스케줄링
- IndexError
- java.time.package
- not_in
- StringBuilder 클래스
- 자료형
- 기본 API 클래스
- 파이썬
- Pattern 클래스
- 순환할당
- Random 클래스
- python
- StringTokenizer 클래스
- 딕셔너리
- 리스트연산자
- FALSE
- Format 클래스
- 문자열함수
- 요소선택
- 프로그램
- Math 클래스
- StringBuffer 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함