Observable.create((subscriber) => { ... }) in angular 中的订阅者是什么类型 2

What type is the subscriber in Observable.create((subscriber) => { ... }) in angular 2

我一直在努力解决这个问题。有没有人在下面的 Angular 2 typescript 代码块中弄清楚订阅者是什么类型?

let obs: Observable<string> = Observable.create((subscriber) => { ... }) 

Has anyone figured out what type the subscriber is in the Angular 2 typescript code block below

它是可用时的 next 值。请参阅:http://reactivex.io/documentation/operators/create.html onNext 是函数 (subscriber)=>。我个人会称之为 (next)=>

创建用于创建具有自定义订阅行为的Observables

您传递给 Observable.create 方法的函数定义了订阅 Observable 时应该发生的行为。因此,传入的 subscriber 将是一个实现 Observer<T> 接口的对象。

例如,下面的代码将创建一个 Observable,当订阅时,它会发出两个值然后完成(对于任何语法错误提前道歉,我不使用 TypeScript):

let obs: Observable<string> = Observable.create((subscriber) => { 
  subscriber.next("Hello");
  subscriber.next("World!");
  subscriber.complete();
});

//Here is a subscriber that we define to subscribe to the Observable
let sub: Subscriber<string> = Subscriber.create(
              (x) => console.log(x),
              null,
              () => console.log("Done"));

//At this point the method you passed to Observable.create will be invoked
obs.subscribe(sub);

//Output:
//Hello 
//World!
//Done

请注意,这实际上并不 执行 这段代码,而是定义当新订阅者通过调用订阅时将遵循的行为 obs.subscribe(subscriber) 或者有一个功能: obs.subscribe((x) => console.log(x);

在许多情况下,不需要使用 create,因为大多数常见事件发射源都有包装器,因此您不需要