2014-10-08 1 views
2

최종 약속 호출 해결 않습니다 우리는이HTML5 약속 : 예를 들어

하고 있다는 점에서 var prom = new Promise(function(resolve,reject){...}), 몇 가지 조건이 만족 될 때, 우리는 그 약속 통화를 종료 것, 결의 전화, 또는 우리가 명시 적으로 return를 호출해야합니다 같은 약속 전화 후 resolve(params)?

+0

"약속 전화 끝내기"가 무슨 뜻인지 확실하지 않습니다. 'Promise' 생성자에 전달하는'resolver' 함수에 대한 호출? – Bergi

+0

결국, 해결 후 실행해야하는 명령문이 없습니다. – mido

+1

아니요,'resolve'는 "그냥 함수"입니다. 그것을 호출하는 것은 특별한'return' 또는'throw'의미를 가지지 않는다. – Bergi

답변

4

resolve 다음 코드는 여전히 실행됩니다. 이것이 예기치 않은 작업이 발생하지 않도록 논리를 설계하는 것은 귀하의 책임입니다. 돌아 오거나 if-else 블록을 사용할 수 있습니다.

그것은 쉽게 볼 수있다 :

var prom = new Promise(function(resolve,reject) { 
    resolve(123); 
    console.log('still working') 
}); 
prom.then(function(data) { console.log(data) }); 

결과는 still working가 해상도 콜백조차 한 후 해결 된 것 생각 전에 온다 그러나

still working 
123 

참고가 될 것입니다.