Как вернуть наблюдаемый метод в другой наблюдаемый Angular 7 - PullRequest
0 голосов
/ 09 июля 2019

В компоненте класса обслуживания переопределить метод get-service с использованием angular7.Я хочу вернуть сопоставленные данные, если необходимо сопоставить данные, иначе вернуть исходные данные.Это моя функция:

read(isSelectable:boolean): Observable<IFailureMode> {
  const observable = new Observable<IFailureMode>(subscriber => {
      if (isSelectable) {
        return super.read(filter).subscribe(data=>mapToSelectableModel(data));// Here want to return mapped data
      } else {
        return super.read(filter);//Here want to return origin data
      }
    });
  return observable;
}

Как вернуть super.read (фильтр) как observable.next?Есть ли более полезный способ сделать это?

1 Ответ

2 голосов
/ 09 июля 2019

Исправленный ответ

Если все, что вам нужно, это применить отображение к super.read в зависимости от предоставленного аргумента, это должно сделать это:

read(isSelectable) {
  return super.read(filter)
    .pipe(map(data => isSelectable ? mapToSelectableModel(data) : data));
}

Оригинальный ответ (неверный)

Если я правильно понимаю ваш вопрос, это будет подход для вас:

read(fitler) {
  return of(filter)
    .pipe(
      map(f => {
        if (f.key === 'isSelectable' && f.value === 'true') {
          return super.read(f).pipe(map(data => mapToSelectableModel(data));
        } else {
          return super.read(f);
        }
      })
    );
}

В этом случае вызов superбудет отображаться условно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...