ошибка TS2339: свойство «do» не существует для типа «Observable» - PullRequest
0 голосов
/ 15 мая 2018

Я использовал angular-5.x и, как только я обновился до angular-6.x и его зависимостей от других узлов (zone, rxjs и т. Д.), А также.

Я начал сталкиваться со следующими ошибками

ОШИБКА в src / app / xxx / apiConnection / auth.interceptor.ts (25,33): ошибка TS2339: свойство 'do' не существует для типа 'Observable>'. src / app / xxx / apiConnection / auth.interceptor.ts (30,31): ошибка TS2339: свойство 'do' не существует для типа 'Observable>'.

мой код выглядит следующим образом:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    console.log(req)
    if(!req.headers.has('skip-interceptors')) {
      let card = localStorage.getItem(LocalStoregeIdems.oAUTH_ACCESS_CARD)
        , headers;
      if (card) {
        headers = req.headers.set('Authorization', card);
      }

      let clone = req.clone({
            withCredentials: true,
            headers
          });
      return next.handle(clone).do(event => {
        console.log(event);
      });
    } else {
      req.headers.delete('skip-interceptors');
      return next.handle(req).do(event => {
        console.log(event);
      });
    }
  }

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

В полноте Пьеру.
Если вы do хотите использовать tap (Пун намеревался ..), вам сначала нужно передать это трубкой.
Ваша линия разрыва будет выглядеть примерно так:

return next.handle(req).pipe(tap(event => {
        console.log(event);
    })
);
0 голосов
/ 03 июля 2018

Оператор do был переименован в оператор tap в rxjs6.

Надеюсь, это поможет

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