web-dev-qa-db-fra.com

Erreur: Impossible de résoudre 'rxjs / add / operator / map'

C'est app.module.ts J'ai essayé de faire l'importation de la carte dans différents projets et cela a bien fonctionné, mais dans ce projet cela ne fonctionne pas.

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import {HttpModule} from '@angular/http';

    import { AppComponent } from './app.component';
    import { PagesComponent } from './pages/pages.component';

    @NgModule({
      declarations: [
        AppComponent,
        PagesComponent
      ],
      imports: [
        BrowserModule,
        HttpModule

      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

app.component.ts

import { Component } from '@angular/core';
import {PageService} from './page.service';

@Component({

  selector: 'app-root',
   templateUrl: './app.component.html',
   styleUrls: ["../assets/public/css/adminstyle.css",
            "../assets/public/css/demo.css",
          "../assets/public/css/style.css"
        ,"../assets/public/css/stylesheet.css"],
  providers:[PageService]
})
export class AppComponent {
  title = 'app';
}

page.service.ts

import {Injectable} from '@angular/core';
import {Http,Headers} from '@angular/http';

import 'rxjs/add/operator/map';

@Injectable({
  providedIn: 'root'
})
export class PageService {

  constructor(private http:Http) { 
  console.log('Task Service Initialized');

  }
}
14
Asad

Il y a quelques changements assez lourds dans l'utilisation de rxjs 6.

Importations:

Comme déjà indiqué, vous devriez maintenant utiliser:

import { map } from 'rxjs/operators';

(et identique pour les autres opérateurs)

Je veux mentionner ici les autres principaux changements:

Observable, Subject et les méthodes qui créent Observables (comme of) doivent maintenant être importés comme ceci:

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

Vous devrez utiliser pipe pour appliquer la plupart des opérateurs, ce qui peut paraître un peu étrange.

par exemple. :

obs.pipe(
    map(....),
    secondOperator(....),
    thirdOperator()
)

au lieu de

obs.map(....)
   .secondOperator(....)
   .thirdOperator()

Et enfin, en raison du changement avec pipe et du conflit avec les mots réservés JavaScript, certains opérateurs ont dû être renommés:

do devient tap

catch et finally deviennent catchErrorfinalize

switch devient switchAll

d'autres fonctions ont également été renommées:

fromPromise devient from

throw devient throwError

34
Pac0

Dans angular 6 import 'rxjs/add/operator/map'; devenir:

import { map } from 'rxjs/operators';

Lire ici: https://www.academind.com/learn/javascript/rxjs-6- what-changed/

14
לבני מלכה

Les versions les plus récentes de Angular ne prend pas en charge la carte. Vous devez donc l'installer à l'aide de la commande Invite à l'aide de la commande suivante. Commencez par accéder au répertoire du projet et à la commande suivante:

npm install --save rxjs-compat

N'oubliez pas d'importer ceci:

import 'rxjs/add/operator/map';

Merci!

4