我正在尝试导入
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;
}
});
}
}
答案 0 :(得分:2)
您的导入应类似于RxJS6中的以下内容:
(1)rxjs:创建方法,类型,调度程序和实用程序
import { Observable, Subject } from 'rxjs';
(2)rxjs / operators:所有可管道运算符:
import { map, filter, scan } from 'rxjs/operators';
有关详情,请参阅migration guide和import 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;
}
}));
}