订阅rx.js中的promise

314*_*926 0 javascript rxjs

我有一个返回promise的函数.
我想使用rx.js订阅该承诺,以便调用此函数将通知所有订阅者.

这是我有的:

var subject = new Rx.Subject();

var subscription = subject.subscribe(
    function (x) { console.log('onNext: ' + x); },
    function (e) { console.log('onError: ' + e.message); },
    function () { console.log('onCompleted'); }
);

//here I want to push first notification
subject.fromPromise(functionThatReturnsPromise()); 

//some code

//here I want to push second notification
subject.fromPromise(functionThatReturnsPromise()); 
Run Code Online (Sandbox Code Playgroud)

因此,订户只收到一个通知.

怎么解决?

And*_*ltz 5

var subject = new Rx.Subject();

var subscription = subject.mergeAll().subscribe(
    function (x) { console.log('onNext: ' + x); },
    function (e) { console.log('onError: ' + e.message); },
    function () { console.log('onCompleted'); }
);

subject.onNext(Rx.Observable.fromPromise(functionThatReturnsPromise()));

//some code

subject.onNext(Rx.Observable.fromPromise(functionThatReturnsPromise()));
Run Code Online (Sandbox Code Playgroud)

这里的主题现在是一个元流(可观察到的观察者).在订阅它之前,我们通过调用"压扁"它mergeAll().在onNext()我们正在向观察者提供Observables,这就是使它成为元流的原因.