angular - 错误 : Can't resolve 'rxjs/add/operator/map'

标签 angular rxjs rxjs6

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

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

  }
}

最佳答案

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

导入:

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

import { map } from 'rxjs/operators';

(其他运营商也一样)

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

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

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

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

例如:

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

代替

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

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

do 变为 tap

catchfinally 变成了 catchError finalize

switch 变为 switchAll

其他功能也已重命名:

fromPromise 变为 from

throw 变为 throwError

关于angular - 错误 : Can't resolve 'rxjs/add/operator/map' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50845983/

相关文章:

javascript - 提交按钮不起作用/没有反应

angular - 如何使用 Angular2 将数据发送到 ASP.NET Controller

javascript - 在 rxjs6 中生成随机间隔的值流?

angular - forkJoin 已弃用 : resultSelector is deprecated, 管道改为映射

javascript - 如何将通用 HTML 传递给 Angular 2 组件?

angular - rc5 的 primeng 问题

angular - 仅当第一次失败时才执行第二次 http 调用

javascript - 如何控制或过滤从 rxjs 可观察对象中发出的集合返回的对象数量?

angular - 类的 Set throws Cannot invoke an expression which type lacks a call signature using BehaviorSubject and Observable

angular - 我应该为不同的订阅使用多个 BehaviorSubject 吗?