从Observable复制到观察者

时间:2016-08-17 13:31:09

标签: rxjs

我想将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中。

1 个答案:

答案 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);
}