Promise(2)
var p = new Promise(function(resolve, reject){
//
setTimeout(function(){
console.log(' ');
resolve(' ');
}, 2000);
});
Promise의 구조 함수는 하나의 매개 변수를 수신하고 함수이며 두 개의 매개 변수를 전입합니다:resolve,reject는 각각 비동기 작업이 성공한 후의 리셋 함수와 비동기 작업이 실패한 후의 리셋 함수를 나타냅니다.사실 여기서'성공'과'실패'로 묘사하는 것은 정확하지 않다. 표준에 따르면resolve는 Promise의 상태를fullfiled로 하고,reject는 Promise의 상태를rejected로 한다.그러나 우리의 시작 단계에서는 먼저 이렇게 이해하고 나중에 개념을 세밀하게 연구할 수 있다.
위의 코드에서 우리는 set Timeout, 2초 후에'실행 완료'를 출력하고 Resolve 방법을 호출합니다.실행 코드는 실행 완료 후 2초 후에 출력됩니다.주의!나는 단지 new가 대상을 호출하지 않았을 뿐, 우리가 전송한 함수는 이미 실행되었다. 이것은 주의해야 할 세부 사항이다.그래서 우리가 Promise를 사용할 때는 보통 하나의 함수에 싸여 있고 필요할 때 이 함수 예를 실행합니다.
function runAsync(){
var p = new Promise(function(resolve, reject){
//
setTimeout(function(){
console.log(' ');
resolve(' ');
}, 2000);
});
return p;
}
runAsync()
우리가 포장한 함수 마지막에 프로미스 대상을 리턴합니다. 즉, 이 함수를 실행하면 프로미스 대상을 얻을 수 있습니다.예:
runAsync().then(function(data){
console.log(data);
//
//......
});
runAsync () 의 반환에서 then 방법을 직접 호출합니다. then은 매개 변수를 수신합니다. 함수입니다. 그리고 runAsync에서resolve를 호출할 때 전송된 매개 변수를 가져옵니다.이 코드를 실행하면 2초 후에'실행 완료'를 출력하고 이어서'무슨 데이터'를 출력합니다.then 안의 함수는 우리의 평상시 리셋 함수와 같은 뜻으로 runAsync라는 비동기적인 작업이 끝난 후에 실행될 수 있습니다.이것이 바로 Promise의 역할이다. 간단하게 말하면 원래의 리셋 쓰기 방법을 분리하여 비동기적인 조작이 끝난 후에 체인식으로 리셋 함수를 실행할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.