Promise 코드 일목요연
1. Ajax 작업 의 예 를 봉인 합 니 다.
const getJSON = function(url) {
const promise = new Promise(function(resolve, reject){
const handler = function() {
if (this.readyState !== 4) {
return;
}
if (this.status === 200) {
resolve(this.response);
} else {
reject(new Error(this.statusText));
}
};
const client = new XMLHttpRequest();
client.open("GET", url);
client.onreadystatechange = handler;
client.responseType = "json";
client.setRequestHeader("Accept", "application/json");
client.send();
});
return promise;
};
호출
getJSON("/posts.json").then(function(json) {
console.log('Contents: ' + json);
}, function(error) {
console.error(' ', error);
});
여러 개의 순차 적 인 인터페이스 호출 이 있다 면?
1. 내장 호출
getJSON("/first.json").then(function (first) {
console.log('Contents: ' + first);
getJSON("/second.json").then(function (second) {
console.log('Contents: ' + second);
getJSON("/third.json").then(function (third) {
console.log('Contents: ' + third);
})
})
}, function (error) {
console.error(' ', error);
});
2. 체인 호출 (Promise 에서 Promise 를 되 돌려 줍 니 다)
getJSON("/first.json").then(function (first) {
console.log('Contents: ' + first);
return new Promise((resolve => resolve(first)))
}).then((first)=>{
getJSON("/second.json").then(function (second) {
console.log('Contents: ' + second);
return new Promise((resolve => resolve(second)))
})
}).then((second)=>{
getJSON("/third.json").then(function (third) {
console.log('Contents: ' + third);
})
})
체인 호출 의 장점 은 선후 관계 만 한눈 에 알 수 있 고 논 리 를 한눈 에 볼 수 있다 는 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.