【问题标题】:Rxjs Duplex StreamsRxjs 双工流
【发布时间】:2015-12-05 16:23:16
【问题描述】:

RxJs 有什么方法可以创建一个 Observable/Observer 对象,该对象具有接收事件和发出事件的逻辑,类似于Rx.Subject,除了没有组合 Observable 和 Observer,所以当从 Observable 内部发出事件时body,它们不被 Observer 的 body 函数处理。

类似这样的:

var someSystem = /* some system that receives and emits events */;

function someFn() {
  return ObservableObserver((observer, observable) => {
    observable.subscribe((e) => someSystem.emit(e));
    someSystem.on("data", (d) => observer.onNext(d));
  });
}

const mySystem = someFn();

mySystem.subscribe(
  (e) => {
    console.log("Received from 'someSystem':", e);
    mySystem.onNext("sending this to 'someSystem'");
  }
);

编辑:

我相信我正在寻找的类似于 Node.js Duplex Stream:

https://nodejs.org/api/stream.html#stream_class_stream_duplex

【问题讨论】:

    标签: javascript rxjs


    【解决方案1】:

    如果我符合您的要求,您可以使用Subject#create 方法:

    function someFn() {
      return Subject.create(
        Observer.create((e) => someSystem.emit(e)),
        Observable.fromEvent(someSystem, 'data')
      );
    }
    
    const mySystem = someFn()
    
    source.subscribe(mySystem);
    
    mySystem.subscribe((e) => {
      console.log("Received from 'someSystem':", e);
    });
    

    【讨论】:

    • 这正是我想要的。谢谢!
    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    相关资源
    最近更新 更多