我想将 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。
最佳答案
我看不出这样做有什么意义。您打算将多个观察者合并为一个吗?有一个运算符: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);
}
关于rxjs - 从 Observable 复制到 Observer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38998117/