无法将'rxjs'导入angular 5应用程序

时间:2018-05-17 03:26:12

标签: angular rxjs

我正在尝试导入

import 'rxjs/add/operator/map';

然而,我一直收到错误 “属性'地图'在'Observable'类型中不存在

我尝试了不同的导入,以及rxjs的不同导入组合。每个产生相同或黑名单的错误。我在tslint.json中允许使用rxjs,但仍然得到上述错误。

Import { Observable } from 'rxjs/Observable';

它告诉我:“模块没有导出成员'Observable'”

这就是我正在使用的:

import { Injectable } from '@angular/core';
import {Http, Response, RequestOptions, Headers} from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';


@Injectable({
  providedIn: 'root'
})
export class AuthService {
  baseUrl = 'http://localhost:5000/api/auth';
  userToken: any;

constructor(private http: Http) { }

login(model: any) {
  const headers = new Headers({'Content-type': 'application/json'});
  const options = new RequestOptions({headers: headers});
  return this.http.post(this.baseUrl + 'login', model, options).map((response: Response) => {
    const user = response.json();
    if (user) {
      localStorage.setItem('token', user.tokenString);
      this.userToken = user.tokenString;
    }
  });
}
}

1 个答案:

答案 0 :(得分:2)

您的导入应类似于RxJS6中的以下内容:

(1)rxjs:创建方法,类型,调度程序和实用程序

import { Observable, Subject } from 'rxjs';

(2)rxjs / operators:所有可管道运算符:

import { map, filter, scan } from 'rxjs/operators';

有关详情,请参阅migration guideimport paths

也可以使用pipe代替链接,例如:

 login(model: any) {
  const headers = new Headers({'Content-type': 'application/json'});
  const options = new RequestOptions({headers: headers});
  return this.http.post(this.baseUrl + 'login', model, options).pipe(

    map((response: Response) => {
    const user = response.json();
    if (user) {
      localStorage.setItem('token', user.tokenString);
      this.userToken = user.tokenString;
    }
  }));

}