проблема / ошибка компиляции при использовании карты переключателей rx js - PullRequest
0 голосов
/ 13 марта 2020

Привет, я получаю ошибку в своем коде. У меня есть angular 5 formGroup, и я пытаюсь использовать операцию pipe и switchMap внутри.

Однако это выдает мне ошибку. Ниже приведен фрагмент моего кода.

this.formGroup.valueChanges.pipe(
  switchMap(
      (formValue) => {
        console.log(formValue);
      }

  )

).subscribe();

ошибка, как показано ниже

Argument of type '(formValue: any) => void' is not assignable to parameter of type '(value: any, index: number) => ObservableInput<{}>'.
  Type 'void' is not assignable to type 'ObservableInput<{}>'.ts(2345)

очень ценю любую помощь, спасибо

1 Ответ

0 голосов
/ 13 марта 2020

Вы должны вернуть observable в switchMap. switchMap переключается на новое наблюдаемое, и вы можете сделать это условно на основе предыдущего значения.

Если вы хотите просто console.log, я бы использовал tap.

this.formGroup.valueChanges.pipe(
  tap(
      (formValue) => {
        console.log(formValue);
      }

  ),

).subscribe();

====================== Редактировать ========================== Я предполагаю, что this.generatePerformanceGraph(formValue); является обычной функцией и она не возвращает наблюдаемой, тогда вы можете сделать это в subscribe.

this.formGroup.valueChanges.pipe(
  tap( // you can remove this tap, it is just for logging
      (formValue) => {
        console.log(formValue);
      }

  ),

).subscribe(formValue => {
  this.generatePerformanceGraph(formValue);
});
...