在Angular应用程序中,我们使用一个名为“withBusy”的辅助函数扩展rxjs Observable原型,允许我们将这个辅助函数链接到Observables:
Observable.prototype.withBusy = function (busyMonitor) {
// simplified implementation details
return this.finally(function () {
// simplified implementation details
});
};
this.methodReturningObservable()
.withBusy(this.busyMonitor)
.subscribe(result => { alert(result); });
这个实现工作正常,直到我们将@angular NPM软件包从4.4.6更新到5.2.6。请注意,rxjs软件包的版本为5.5.6,并且未更新。
在此次更新之后,实现可以在任何地方使用,除了,用于执行mergeMap的单个案例:
let result: Observable<string>;
result = Observable.from([1, 2])
.mergeMap((value, idx) => "" + value)
.withBusy(this.busyMonitor); // -> withBusy is not a function
result.subscribe(e => {
console.log(e);
});
由于rxjs版本没有更新,我不知道为什么现在这个代码被破坏了。有什么想法吗?
谢谢你的时间, 柯恩