如何使用jQuery ajax实现RxJs?

问题描述:

这是我实现:如何使用jQuery ajax实现RxJs?

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

但Ajax调用进行,即使没有订阅。 是吗?

+1

如果你跑了'$。阿贾克斯()'行本身,AJAX调用会发生。通过调用Rx.Observable.fromPromise()来调整它并不会改变它。 – JLRishe

Ajax调用是会尽快你怎么称呼它开始执行的承诺。你需要在Rx.Observable.defer(() => Rx.Observable.fromPromise($.ajax(/*...*/)))包裹它推迟执行所以它只被有线在实际订阅它

+0

我正在使用rxjs-jquery,但即使没有订阅,仍会激发$ .ajaxAsObservable。 – Elisa

+0

ajaxAsObservable犯规让$就懒(见https://github.com/Reactive-Extensions/rxjs-jquery/blob/master/src/ajax.js)。用'Rx.Observable.defer()'包装它以使其懒惰 –