Не удалось использовать Observable.of в RxJs 6 и Angular 6

 import { Observable, of } from "rxjs";

// And if I try to return like this
  return Observable.of(this.purposes);

Я получаю сообщение об ошибке: свойство 'of' не существует для типа typeof Observable '


person k harish    schedule 07.05.2018    source источник
comment
В v6 это было бы просто return of(this.purposes).   -  person cartant    schedule 08.05.2018
comment
где это задокументировано? Типичная строка: вы втягиваете любой нужный вам оператор из одного места в разделе «rxjs / operations», что, очевидно, отличается от создания, но неясно, что статический метод был заменен. Это важное знание разбросано по галактике, будто я ищу Токс У, это просто потерянное время.   -  person Joe    schedule 08.05.2018


Ответы (3)


Похоже, комментарий картриджа верен, руководство по обновлению RxJS не охватывает этот метод специально, но говорит "Классы, которые работают с наблюдаемыми объектами, были заменены функциями"

Это, кажется, означает, что все или большинство этих методов класса, таких как .of, .throw и т. Д., Были заменены функцией

Так что вместо

import { Observable, of } from "rxjs";
Observable.of(this.purposes);

do

import { of } from "rxjs";
of(this.purposes);
person tim545    schedule 09.05.2018
comment
импортировать {of} из 'rxjs / observable / of'; - person sabithpocker; 14.06.2018
comment
А что насчет reduce()? - person Marinos An; 26.06.2018
comment
reduce () был перемещен в операторы, поэтому вы можете импортировать его с помощью import {reduce} from 'rxjs/operators'; - person tim545; 18.07.2018
comment
Это такая ужасная перемена. Эти методы должны быть статическими методами класса, как и раньше. Конфликты имен теперь гораздо более вероятны. - person Trevor de Koekkoek; 13.10.2018
comment
Вы можете получить обзор изменений academind.com/learn/javascript/ rxjs-6-что-изменилось - person Inês Gomes; 21.02.2019
comment
of теперь устарело, в документации рекомендуется использовать вместо этого запланированное - person Wildhammer; 01.05.2019

rxjs 6

import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';

export class SelectivePreloadingStrategy implements PreloadingStrategy {
    preload(route: Route, load: Function): Observable<any> {
       return route.data && route.data.preload === false ? of(null) : load();
    }

 }
person Tiny King    schedule 24.05.2018

Чтобы избежать линтинг rxjs в черный список, импортируйте их следующим образом:

import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
person Tito Leiva    schedule 13.05.2019