일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자동글쓰기
- 아두이노 강좌
- Php공부
- Javascript
- 파이썬
- vultr
- 아두이노 초보
- 아두이노 기초강좌
- Python
- 워드프레스
- php
- 자바스크립트
- flex
- 웹
- ChatGPT
- 자동포스팅
- Ajax
- 가상서버
- 챗지피티
- 프로그램
- c#
- 무료일러스트
- cocos2d-x
- vps
- 쿠팡파트너스
- 자동블로그
- HTML
- 파싱
- 그누보드
- 아두이노
Archives
- Today
- Total
플밍
[Deferred] jQuery 에서 Promise 와 같이 사용하기 본문
Promise 와 async & await 는 콜백지옥에서 벗어나게 해주며 비동기 작업의 순차적인 동작을 보장한다.
하지만 ie와 같이 구버전의 브라우저를 꼭 지원해야 할 상황이라면 이런 객체 또는 키워드가 지원되지 않기 때문에 사용이 불가능하다.
이때는 jQuery 의 Deferred 객체를 사용하면 Promise 와 같은 형태로 사용이 가능하다.
아래 예제는 Deferred를 사용한 간단한 예제이다. 3개의 비동기 처리를 1초마다 순차적으로 처리해준다.
(function() {
var dfd = $.Deferred();
setTimeout(function() {
dfd.resolve('첫번째로 보낸 값')
}, 1000);
return dfd.promise()
})()
.then(function(data) {
console.log(data);
var dfd = $.Deferred();
setTimeout(function() {
dfd.resolve('두번째로 보낸 값')
}, 1000);
return dfd.promise()
})
.then(function(data) {
console.log(data);
var dfd = $.Deferred();
setTimeout(function() {
dfd.resolve('세번째로 보낸 값')
}, 1000);
return dfd.promise()
})
.then(function(data) {
console.log(data)
})
결과)
첫번째로 보낸 값 // 1초 후
두번째로 보낸 값 // 1초 후
세번째로 보낸 값 // 1초 후
Comments