错误:无法解析'rxjs/add/operator/map'

问题描述 投票:0回答:5

这是

app.module.ts
我尝试在不同的项目中导入地图并且它工作正常,但在这个项目中它不起作用。

    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');

  }
}
angular rxjs rxjs6
5个回答
71
投票

rxjs 6 的使用有一些相当大的变化。

进口

如前所述,您现在应该使用:

import { map } from 'rxjs/operators';

(其他运营商也一样)

我想在这里提到其他主要变化:

Observable
Subject
和创建
Observable
的方法(如
of
)现在必须像这样导入:

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

您将需要使用

pipe
来应用大多数运算符,这可能看起来有点奇怪。

例如:

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

代替

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

最后,由于管道的变化和与 JavaScript 保留字的冲突,一些运算符不得不重命名

do
变成
tap

catch
finally
变成
catchError
finalize

switch
变成
switchAll

其他功能也已重命名:

fromPromise
变成
from

throw
变成
throwError


21
投票

角 6

import 'rxjs/add/operator/map';
变成:

import { map } from 'rxjs/operators';

在这里阅读:https://www.academind.com/learn/javascript/rxjs-6-what-changed/


13
投票

较新版本的 Angular 不支持地图。因此,您需要使用以下命令在命令提示符下安装它。 首先进入项目目录并使用命令:

npm install --save rxjs-compat

别忘了导入这个:

import 'rxjs/add/operator/map';

谢谢!


0
投票
import { from } from 'rxjs';
import { filter } from 'rxjs/operators';

-1
投票

Erro: não é possível resolver o erro 'rxjs/add/operator/map'

Recentemente, recebemos o erro Can't resolve 'rxjs/add/operator/map'após atualizar o Angular v5 para v6 e, depois de pesquisar um pouco no Google, encontramos a migração rxjs que nos guia para ambos rxjs e rxjs-兼容 ^6.0.0.

Aqui está o comando para instalar os pacotes rxjs para corrigir o erro:

npm 安装 rxjs@6 rxjs-compat@6 --保存 Depois de instalar os dois pacotes acima, o erro deve desaparecer.

Verifique o caminho das suas importações, podem estar inválidos tambem!成功!!

© www.soinside.com 2019 - 2024. All rights reserved.