web-dev-qa-db-fra.com

observable.of est introuvable dans la version 6.0.0-tactical-rc.1

Service de construction qui doit renvoyer temporairement Observable d'un tableau avant la construction de l'API du serveur. Avant de mettre à jour angular et d'autres packages vers 6.0.0-rc.3, la version i utilisait la syntaxe suivante:

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


@Injectable()
export class GeocodesService {
   getPositions():Observable<any>{     
        return Observable.of({ })
   }
}

À 6.0.0-rc.3, cette syntaxe semble obsolète Essayer de l'importer de la manière suivante (en utilisant le dernier angulaire):

 import 'rxjs/observable/of'

Mais avoir une erreur:

Module not found: Error: Can't resolve 'rxjs/observable/of'

Comment importer des "of" avec les derniers rxjs?

Merci

7
happyZZR1400

Enfin trouvé la solution ici

Ce mec (Tomas Trajan) utilise la syntaxe suivante:

import { Observable , of} from 'rxjs'

et après vous pouvez utiliser:

 getWidgets() {
    return of([]);
 }
8
happyZZR1400

Si vous souhaitez utiliser les importations de correctifs avec RxJS version 6, vous devez également installer rxjs-compat.

C'est un package séparé qui ajoute une compatibilité ascendante (avec RxJS version 5) à RxJS version 6:

npm install [email protected]

Avec rxjs-compat installé, vos importations de correctifs devraient fonctionner correctement.

Pour plus d'informations, consultez le guide de migration .

6
cartant

Vous devez modifier vos importations et votre instanciation. Découvrez le blog de Damien

Tl; dr:

import { Observable, fromEvent, of } from 'rxjs';

const yourResult = Observable
    .create(of(yourObservable))
    .startWith(null)
    .map(x => x.someStringProperty.toLowerCase());

//subscribe to keyup event on input element
Observable
    .create(fromEvent(yourInputElement, 'keyup'))
    .debounceTime(5000)
    .distinctUntilChanged()
    .subscribe((event) => {
        yourEventHandler(event);
    });
1
KVarmark