我有一个返回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)
因此,订户只收到一个通知.
怎么解决?
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,这就是使它成为元流的原因.
归档时间: |
|
查看次数: |
3243 次 |
最近记录: |