Устаревшие методы в rxjs v6 - PullRequest
1 голос
/ 28 мая 2019

Я пытаюсь использовать combineLatest:

import { combineLatest } from 'rxjs/Observable';

, но получаю предупреждение

combineLatest is deprecated: Deprecated in favor of static combineLatest. 

Если я буду следовать , решение, предоставленное в RxJS v5.x дляРуководство по обновлению v6 как указано здесь , и я пишу

import { combineLatest } from 'rxjs';

, затем я получаю сообщение tslint:

This import is blacklisted, import a submodule instead

, которое кажется немногозмея кусает свой хвост ...

Если я использую

import { combineLatest } from 'rxjs/internal/observable/combineLatest';

, то она работает без предупреждающих сообщений, но, насколько я знаю, импортировать внутренние пакеты не рекомендуется (поправьте меняесли я не прав).

Отключение сообщений tslint мне кажется неприемлемым.

Пример:

this.Subscription = combineLatest([a,b])
    .pipe(
      map( (...) )
    ).subscribe( (...) );

Какое подходящее решение?Спасибо.

Ответы [ 3 ]

2 голосов
/ 28 мая 2019

Попробуйте использовать import { combineLatest } from 'rxjs/index';, чтобы избежать устаревшей библиотеки или черного списка.

См. Это: https://rxjs -dev.firebaseapp.com / api / index / function / ОбъединитьLatest

1 голос
/ 28 мая 2019

Так как это разрешено официальным документом для импорта combineLatest, tslint здесь просто глупый.

Отредактируйте tslint.json и удалите rxjs запись "import-blacklist".

0 голосов
/ 03 июня 2019

Я уже нашел решение, основываясь на комментарии @ martin: мой оригинальный проект был создан с использованием Angular 6. Когда я обновил Angular 6 до Angular 7, я не учел, что tslint.json было обновлено.Этот файл был упрощен и содержал строку

"extends": "tslint:recommended"

( Подробнее см. Здесь ).В рекомендованном файле tslint пакет rxjs был исключен из черного списка.

Итак, у меня была старая версия файла tslint.json, я обновил ее, и теперь у меня нет этой проблемыбольше.

...