Как правильно создать типизированный Observable с RxJS? - PullRequest
0 голосов
/ 08 ноября 2019

Я хотел бы создать пользовательский Observable в RxJS 6

Метод 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 голосов
/ 08 ноября 2019

Просто используйте тему

myWork$ = new Subject<MyData>();

, и вы можете позвонить дальше, когда захотите, чтобы она испустила

update(data: MyData) {
  this.myWork$.next(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...