Ответ 1
Проблема не в угловых, а с rxjs. rxjs ввела нарушение изменений с версии rxjs 6.
Чтобы ваш код снова работал без изменения какого-либо кода, установите следующий пакет:
npm install [email protected] --save
Затем вы сможете скомпилировать свой проект. rxjs-compat
предназначен для временного решения, поэтому вам нужно обновить свою кодовую базу для работы с новой версией.
Новый путь импорта
Что вам нужно обновить:
-
Обновление импортных заявлений от
import { Observable } from "rxjs/Observable";
в
import { Observable } from "rxjs";
-
Обновите импорт вашего оператора из
import 'rxjs/add/operator/do'
в
import { do } from "rxjs/operators";
Переименованные операторы
Некоторые операторы также были переименованы из-за конфликтов имен с зарезервированными словами JavaScript. Они есть
-
do
=>tap
-
catch
=>catchError
-
switch
=>switchAll
-
finally
=>finalize
Отсутствие цепочки операторов
Вы также не можете больше привязывать своих операторов к использованию оператора pipe
например
// an operator chain
source
.map(x => x + x)
.mergeMap(n => of(n + 1, n + 2)
.filter(x => x % 1 == 0)
.scan((acc, x) => acc + x, 0)
)
.catch(err => of('error found'))
.subscribe(printResult);
// must be updated to a pipe flow
source.pipe(
map(x => x + x),
mergeMap(n => of(n + 1, n + 2).pipe(
filter(x => x % 1 == 0),
scan((acc, x) => acc + x, 0),
)),
catchError(err => of('error found')),
).subscribe(printResult);