2016-12-04 1 views
0

이 내 구현 :jQuery ajax를 사용하여 RxJ를 구현하는 방법은 무엇입니까?

Rx.Observable.fromPromise($.ajax({ 
     url  : url + postal_value + '&types=(regions)&location=51.509865,-0.118092&key=' + key, 
     type : "GET", 
     datatype: "json" 
    })); 

하지만 아약스 호출에도 가입없이 진행된다. 맞습니까?

+1

'$ .ajax()'행을 단독으로 실행하면 AJAX 호출이 수행됩니다. Rx.Observable.fromPromise()에 대한 호출로 그 주변을 변경해도 변경되지 않습니다. – JLRishe

답변

0

ajax 호출은 호출하는 즉시 실행을 시작하는 약속입니다. Rx.Observable.defer(() => Rx.Observable.fromPromise($.ajax(/*...*/)))에 랩핑하여 실행을 연기해야 ​​실제로 실제로 구독 할 때만 유선이됩니다.

+0

rxjs-jquery를 사용하고 있지만 여전히 $ .ajaxAsObservable은 구독하지 않아도 작동합니다. – Elisa

+0

ajaxAsObservable은 $ .ajax를 게으르게 만듭니다 (https://github.com/Reactive-Extensions/rxjs-jquery/blob/master/src/ajax.js 참조). 'Rx.Observable.defer()'로 래핑하여 게으르다. –

관련 문제