Rxjs:如何创建流

时间:2016-06-01 03:57:16

标签: javascript reactive-programming rxjs observable observers

在理解Observable,Observer和subscribe的过程中,我刚刚来到这个例子,无法理解这个例子,我很困惑

var observable = Rx.Observable.create(
 function(observer) {     
 observer.onNext('Simon');
 observer.onNext('Jen');  
 observer.onNext('Sergi');
 observer.onCompleted();  // We are done }
);

这里发生了什么?我们在这里创造的观察者流?但是观察者是在使用subscribe方法订阅流时从流接收数据的人,并且有3个方法onNext,complete和error。

还举个例子。我们在哪里创建一个流,一个观察者(独立)以及这个独立的观察者如何订阅一个observable。

1 个答案:

答案 0 :(得分:0)

文档是理解可观察者及其机制的入口。现在的事实是它有时会非常密集。我建议你看看这里:

对你的问题的简短回答是:

  • Rx.Observable.create返回一个对象(一个observable),它实现了一个包含subscribe函数的接口(在文档中描述)。当您在subscribe中执行.subscribe(observer)函数时,作为Rx.Observable.create参数传递的工厂函数将使用该observer参数执行。在您的情况下,Simon等值将被推送到观察者(它实现包含onNextonCompleted等的观察者界面。
  • 通常使用重载形式.subscribe(function yournamehere(){...})。因此,观察者是从该函数内部构建的,其onNext是您传递的函数,其onErroronCompleted是默认值。
  • 关于你问题的第二部分,参见文档https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/observer.md