Угловой комбайн из 6 нг. Последнее не рекомендуется - PullRequest
0 голосов
/ 10 мая 2018

Я недавно обновил с Angular 5 до Angular 6.

Я получаю это предупреждение combineLatest is deprecated: resultSelector no longer supported, pipe to map instead. Rxjs - это версия 6.1.0, tslint - 5.10.0, Angular CLI - 6.0.0 и Typescript 2.7.2. Я использую это так:

const a$ = combineLatest(
  this.aStore.select(b.getAuth),
  this.cStore.select(b.getUrl),
  (auth, url) => ({auth, url}),
);

Я пробовал тоже так:

empty().pipe(
combineLatest(...),
  ...
)

Но это дает мне: combineLatest is deprecated: Deprecated in favor of static combineLatest и empty также не рекомендуется в пользу его статической версии.

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Для trailing comma ошибка, удалите запятую после (auth, url) => ({auth, url})

const a$ = combineLatest(
  this.aStore.select(b.getAuth),
  this.cStore.select(b.getUrl),
  (auth, url) => ({auth, url}),  // Remove this comma.
);

Для ошибки missing import Убедитесь, что у вас есть импорт для всех внешних переменных или классов, которые вы используете в файле.

Например, в этом случае, если вы не импортировали combineLatest, импортируйте его

import { combineLatest } from 'rxjs'; // For RxJS 6.x

import { combineLatest } from 'rxjs/operators'; // For RxJS 5.x
0 голосов
/ 09 июля 2018

К сожалению, вы также можете получить эту ошибку tslint, если вы импортируете объединениеПоследний от операторов:

import { combineLatest } from 'rxjs/operators';

combineLatest(...array);

вместо

import { combineLatest } from 'rxjs';

combineLatest(...array);
0 голосов
/ 10 мая 2018

combLatest устарел: resultSelector больше не поддерживается, вместо него отображается конвейер

В приведенном выше предупреждении рекомендуется удалить resultSelector последнюю функцию, которую вы предоставили в сочетании сlateLatest наблюдаемой, и предоставить ее как частьоператора карты следующим образом

const a$ = combineLatest(
  this.aStore.select(b.getAuth),
  this.cStore.select(b.getUrl)
);

const result$ = a$.pipe(
  map(results => ({auth: results[0], url: results[1]}))
)
...