Typescript Observable.create((subscriber)=>;{…})中的订阅服务器是什么类型的

Typescript Observable.create((subscriber)=>;{…})中的订阅服务器是什么类型的,typescript,angular,rxjs,Typescript,Angular,Rxjs,这件事我一直很紧张。有人知道下面Angular 2 typescript代码块中的订阅者是什么类型的吗 let obs: Observable<string> = Observable.create((subscriber) => { ... }) let obs:Observable=Observable.create((订户)=>{…}) 有人知道下面Angular 2 typescript代码块中的订阅者是什么类型的吗 无论何时可用,它都是下一个值。请参阅:onNe

这件事我一直很紧张。有人知道下面Angular 2 typescript代码块中的订阅者是什么类型的吗

let obs: Observable<string> = Observable.create((subscriber) => { ... }) 
let obs:Observable=Observable.create((订户)=>{…})
有人知道下面Angular 2 typescript代码块中的订阅者是什么类型的吗


无论何时可用,它都是下一个值。请参阅:
onNext
是功能
(订户)=>
。我个人称之为
(next)=>

Create用于创建具有自定义订阅行为的
可观察对象

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

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

let obs:Observable=Observable.create((订户)=>{
订户。下一个(“你好”);
订户。下一个(“世界!”);
subscriber.complete();
});
//这里是一个订阅者,我们定义它来订阅可观察的对象
let sub:Subscriber=Subscriber.create(
(x) =>控制台日志(x),
无效的
()=>console.log(“完成”);
//此时将调用传递给Observable.create的方法
obs.订阅(sub);
//输出:
//你好
//世界!
//完成
请注意,这实际上并不执行此代码,而是定义新订户通过调用订阅时将遵循的行为
obs.subscribe(订户)
或具有以下功能:
obs.subscribe((x)=>console.log(x);


在许多情况下,
create
的使用是不必要的,因为大多数常见的事件发射源都有包装,所以你没有

嗨,保罗,谢谢你的详细解释。但是我似乎找不到观察者界面。另外,我也不知道t会是什么。所以我想我不得不将观察者保留为“任何”现在。感谢您的帮助!;0)问候,@Zorthgo
Subscriber
实现了
Observer
界面
在本例中为
string
,因为这是您正在使用的类型。谢谢Paul。但是我可以从Angular2库中导入Observable,但是似乎没有任何Observator对象可以导入,只是为了留下笔记。最后,我找不到观察者接口,所以我决定使用EventEmitter。似乎很好用。:)从
“rxjs”:“5.0.0-beta.6”
看来
Observer
将是正确的类型。
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