promise의 기본 사용법
프로미스가 왜 나와요?
1: 심층적인 리셋을 위해 더욱 간단해 보인다.겹겹이 끼워 넣은 리셋 함수를 피했다.
promise의 특징
1: 대상의 상태는 외부의 영향을 받지 않는다.Promise 객체는 Pending(진행 중), Resolved(완료됨, 일명 Fulfilled) 및 Rejected(실패) 등 세 가지 비동기식 작업을 나타냅니다.비동기 조작의 결과만 현재 어떤 상태인지 결정할 수 있으며, 그 어떠한 다른 조작도 이 상태를 바꿀 수 없다.이것도 프로미스라는 이름의 유래이다. 그의 영어 뜻은 바로'약속'이다. 다른 수단은 바꿀 수 없다는 뜻이다.2: 일단 상태가 바뀌면 다시 변하지 않는다. 언제든지 이 결과를 얻을 수 있다.Pending에서 Resolved로 변경하고 Pending에서 Rejected로 변경하는 것은 Pending에서 Rejected로 변경할 수 있는 두 가지 방법뿐입니다.이 두 가지 상황이 발생하기만 하면 상태는 응고되고 더 이상 변하지 않으며 이 결과를 계속 유지할 것이다.변경이 발생하더라도 프로미스 대상에 리셋 함수를 추가하면 바로 이 결과를 얻을 수 있습니다.이것은 이벤트 (Event) 와 완전히 다르다. 이벤트의 특징은 그것을 놓치면 다시 감청하면 결과를 얻을 수 없다는 것이다.
promise의 기본 사용 방법
1:
Promise
window.onload = function() {
function pms1() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
console.log(' 1');
resolve(' 1 ');
}, 2000);
});
}
function pms2() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
console.log(' 2');
resolve(' 2 ');
}, 2000);
});
}
function pms3() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
console.log(' 3');
resolve(' 3 ');
}, 2000);
});
}
pms1().then(function(data) {
console.log(' 1 :' + data);
return pms2();
})
.then(function(data) {
console.log(' 2 :' + data);
return pms3();
})
.then(function(data) {
console.log(' 3 :' + data);
return ' ! !'
}).then(function(data) {
console.log(data);
});
}
2: promise.all ()의 기본 구현all () 방법은 & & & 에 해당하며, 모든 함수가 실행된 후에야 then 함수를 실행할 수 있습니다.
var p1 = new Promise(function (resolve, reject) {
setTimeout(resolve, 500, 'P1');
});
var p2 = new Promise(function (resolve, reject) {
setTimeout(resolve, 600, 'P2');
});// p1 p2, then:
Promise.all([p1, p2]).then(function (results) {
console.log(results); // Array: ['P1', 'P2']
});
3: promise.race()의 기본 구현.race () 방법은 그 중의 어떤 함수가 완성되면 then 함수를 실행합니다.
var p1 = new Promise(function (resolve, reject) {
setTimeout(resolve, 500, 'P1');
});
var p2 = new Promise(function (resolve, reject) {
setTimeout(resolve, 600, 'P2');
});
Promise.race([p1, p2]).then(function (result) {
console.log(result); // 'P1'
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.