2013-06-02 2 views
-1

나는다음의 차이점은 무엇입니까?

var getPromise=$.get('/query'), 
     postPromise = getPromise.done(function(data){ 
       return $.post('/search',data); 
     }); 

var getPromise = $.get('/query'); 
var postPromise = getPromise.pipe(function(data){ 
    return $.post('/search',data); 
}); 

사람이 나를 설명 할 수의 차이 사이에 혼란 스러워요?

+0

전체 코드이면 차이가 없습니다. 그렇지 않다면'.done'과'.pipe'에 대한 문서를 읽어 보시기 바랍니다 : http://api.jquery.com/deferred.done/, http://api.jquery.com/deferred.pipe/. –

+0

'pipe'는 함수를 통해 지연된 상태와 값을 필터링하는 새로운 약속을 반환하는 지연 명령입니다. 이것은 jquery 1.8의'then' 메소드로 대체됩니다. – karthikr

+1

아마 이것도 도움이 될 것입니다 : [언제 jQuery 지연된 "then"메서드를 사용해야하고 언제 "pipe"메서드를 사용해야합니까?] (http://stackoverflow.com/q/9583783/218196). –

답변

0

첫 번째 경우 postPromise === getPromise. .done은 동일한 지연 객체를 반환합니다.

.pipe 또는 .then은 새로운 지연 인스턴스를 만듭니다.

+0

실제로'.pipe()'나'.then()'는 * * Deferred *가 아닌 새로운 * Promise *를 반환하는데, 구별은 종종 학문적이다. –

관련 문제