64 votes

Impossible d'utiliser Observable.of dans RxJs 6 et Angular 6

 import { Observable, of } from "rxjs";

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

Je reçois une erreur indiquant que la propriété 'of' n'existe pas sur le type 'typeof Observable'.

22 votes

Dans la V6, ce serait juste return of(this.purposes) .

3 votes

Où cela est-il documenté ? La ligne typique est "Vous tirez dans n'importe quel opérateur que vous avez besoin d'un endroit, sous 'rxjs/operators'" qui est évidemment différent de la création, mais il n'est pas clair que la méthode statique a été remplacée. Cette connaissance de l'importation étant dispersée dans la galaxie comme si je cherchais le Tox Uthat, c'est juste du temps perdu.

120voto

tim545 Points 1351

On dirait que le commentaire de Cartant est correct, la Guide de mise à niveau de RxJS ne couvre pas cette méthode spécifiquement mais dit "Les classes qui opèrent sur des observables ont été remplacées par des fonctions"

Ce qui semble signifier que toutes ou la plupart de ces méthodes de classe comme .of, .throw etc. ont été remplacées par une fonction

Ainsi, au lieu de

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

hacer

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

7 votes

Import { of } de 'rxjs/observable/of' ;

1 votes

Qu'en est-il reduce() ?

0 votes

Reduce() a été déplacé vers les opérateurs afin que vous puissiez l'importer à l'aide de la fonction import {reduce} from 'rxjs/operators';

4voto

Tiny King Points 51

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();
    }

 }

0voto

Pour éviter linting de la liste noire des rxjs et les importer comme ceci :

import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X