我想将Observable
的内容复制到Observer
。
是否有一种简洁的方法可以在不诉诸subscribe()
并手动将事件从Observable
传递到Observer
的情况下实现这一目标?即。
var observer = new Subject();
var observable = new Subject();
observable.subscribe(i => observer.next(i), e => observer.error(e), () => observer.complete())
注意:上面的代码示例是在TypeScript中。
答案 0 :(得分:2)
我认为这样做并不重要。您是否计划将多个观察者合并为一个?有一个运算符:Observable.merge
。
如果您无法使用合并,最简单的方法是使用right version of subscribe:
var observer = new Subject();
var observable = new Subject();
observable.subscribe(observer);
修改强>
假设您的初始化代码如下所示:
function initStream() {
var subject = new Subject();
loadConfigurationCallback(config => {
const observable = createStreamBasedOnConfig(config);
observable.subscribe(subject);
});
return subject;
}
在这种情况下,如果你让loadConfiguration
本身返回一个可观察的内容,你可以简化更多:
function initStream() {
return loadConfigurationObservable().flatMap(createStreamBasedOnConfig);
}