217 votes

Observable.of n'est pas une fonction

J'ai des problèmes avec l'importation de la fonction Observable.of dans mon projet. Mon Intellij voit tout. Dans mon code j'ai:

 import {Observable} from 'rxjs/Observable';
 

et dans mon code je l'utilise comme ça:

 return Observable.of(res);
 

Des idées?

238voto

uksz Points 1601

En fait, j'ai des importations gâchées. Dans la dernière version de RxJS, nous pouvons l'importer comme ceci:

 import 'rxjs/add/observable/of';
 

214voto

jgosar Points 624

Si quelqu'un rencontre ce problème lors de l'utilisation de Angular 6 / rxjs 6, voyez les réponses ici: Impossibilité d'utiliser Observable.of dans RxJs 6 et Angular 6

En bref, vous devez l'importer comme ceci:

 import { of } from 'rxjs';
 

Et puis au lieu d'appeler

 Observable.of(res);
 

juste utiliser

 of(res);
 

44voto

Mark Langer Points 863

Bien que cela paraisse tout à fait étrange, avec moi, il importait de capitaliser le «O» dans le chemin d'importation de import {Observable} from 'rxjs/Observable . Le message d'erreur avec observable_1.Observable.of is not a function reste présent si j'importe l'observable de rxjs/observable . Étrange mais j'espère que cela aidera les autres.

30voto

Eye Points 1329

Ma bêtise est d’oublier d’ajouter /add lorsqu’on a besoin de l’observable.

Était:

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

Ce qui semble visuellement correct parce que le fichier rxjs/observable/of existe, en fait.

Devrait être:

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

18voto

dharmesh kaklotar Points 191

Juste pour ajouter,

si vous utilisez beaucoup d'entre eux vous pouvez ensuite importer le tout en utilisant

import 'rxjs/Rx'; 

comme mentionné par @Thierry Templier. Mais je pense que Si vous êtes en utilisant un nombre restreint d'opérateur, alors vous devez importer l'opérateur individuel comme

import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/of';

comme mentionné par @uksz.

Parce que " rxjs/Rx, va importer tous les Rx composants certainement à un rapport coût / performances.

Comparison

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