用RxJS创建类型化Observable的正确方法是什么?

时间:2019-11-07 23:57:19

标签: rxjs

我想在RxJS 6中创建自定义Observable

Observable.create()方法被标记为已弃用,建议改用new Observable()

这很好,但是指定我的Observable类型的正确方法是什么?

myWork() {
  return new Observable( sub => {
    this.target.onsomething = data => {
      sub.next(data);
      sub.complete();
    }
    this.target.onerror = err => sub.error(err);
  });
}

上面的代码返回一个Observable<unknown>。我发现了2种将其转换为我想要的方法,但是它们都不干净。

选项1 在返回函数中指定类型。

myWork(): Observable<MyData> {}

选项2 指定用户

的类型
return new Observable( (sub: Subscriber<MyData>) => { //...

我错过了第三个更清洁的方法吗?

1 个答案:

答案 0 :(得分:-1)

只需使用一个主题

myWork$ = new Subject<MyData>();

,您可以在要发出它时呼叫下一个

update(data: MyData) {
  this.myWork$.next(data);
}