Rxjs ~ 6.4.0 в Angular 8. Проблема с отображением - PullRequest
0 голосов
/ 27 сентября 2019

Я обновил свое приложение до Angular 8, и появилась новая версия rxjs ~ 6.4.0.Теперь моя функция .map не работает, и у меня есть ошибка в VC

Свойство 'map' не существует для типа 'Observable'.

Я пытался импортироватькарта разными способами

import 'rxjs/add/operator/map';

или таким образом

import { map } from 'rxjs/operators';

Результат тот же.Код ниже

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
const email = this.userInfo.email;
return this.routApi.checkUser(email).map(e => {
  this.tradeOperService.writeOperRoomFromResponse(e);
  return true;
}).catch((e) => {
  if (e.error === 'traderoom') {
    this.router.navigate(['registration']);
  }
  if (e.status === 500) {
    this.authService.logout().subscribe(
      suc => {
        this.tokenService.deleteToken();
        this.tradeOperService.deleteOperRoomInfo();
        this.router.navigate(['login']);
      },
      err => {
        this.OperRoomService.deleteOperRoomInfo();
        this.tokenService.deleteToken();
      }
    );
  }
  return Observable.of(false);
});

Ошибка, если здесь

return this.routApi.checkUser(email).map(e => {

Та же самая ситуация с "of" в конце кода

return Observable.of(false);

Ответы [ 3 ]

1 голос
/ 27 сентября 2019

Теперь вам нужно использовать конвейер для операторов цепочки.измените это:

return this.routApi.checkUser(email).map(e => {

на

return this.routApi.checkUser(email).pipe(
   map(e => {
   })
)
0 голосов
/ 28 сентября 2019

Для этого нужно установить rxjs-compat

0 голосов
/ 27 сентября 2019

Вы используете / импортируете его правильно import { map } from 'rxjs/operators'

Можете ли вы предоставить подробную информацию о реализации

checkUser (электронная почта)

метод?

Если он возвращает обещание, используйте from (), чтобы сделать Observable из него.

И правильный способ импорта "of" -

import { of } from 'rxjs';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...