无法在 Angular 项目中使用 rxjs 的 map 运算符
Posted
技术标签:
【中文标题】无法在 Angular 项目中使用 rxjs 的 map 运算符【英文标题】:Cannot use map operator of rxjs in Angular project 【发布时间】:2019-04-28 18:35:25 【问题描述】:我尝试在我的 Angular 项目中使用 rxjs 的 map 运算符,但出现以下错误
ERROR in src/app/core/service/session.service.ts(88,9): error TS2552: Cannot find name 'map'. Did you mean 'Map'?
我错过了什么吗?
Angular CLI 7.0.4
节点 10.13.0
rxjs 6.3.3
打字稿 3.1.6
import Injectable from '@angular/core';
import CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router from '@angular/router';
import Observable from 'rxjs';
import map from 'rxjs/operators';// This is where I import map operator
import SessionService from '../service/session.service';
@Injectable(
providedIn: 'root'
)
export class AuthGuard implements CanActivate
constructor(private session: SessionService,
private router: Router)
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> |boolean
return this.session
.checkLoginState()//Returns an Observable of Session
.pipe(
map(session =>
if (!session.login)
this.router.navigate(['']);
return session.login;
)
)
【问题讨论】:
分享你的会话服务代码? RsJX 'Map' operator is not working in Angular 6的可能重复 出于某种原因,我认为这段代码是会话服务代码。我在正确的一个中导入了地图运算符,一切正常。感谢您的支持。 【参考方案1】:我的错误发生了,因为我忘记检查该函数的导入,VS 代码总是这样做,但有时不会。看看是不是一样的情况,加...
import map, catchError from 'rxjs/operators';
【讨论】:
以上是关于无法在 Angular 项目中使用 rxjs 的 map 运算符的主要内容,如果未能解决你的问题,请参考以下文章
错误:无法解析“rxjs/add/operator/map”
如何在 Angular 中使用 Jasmine 测试 RxJS switchMap?
无法从 websocket rxjs 节点 Angular 获得响应