You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RxJS中如何给map操作符的判断逻辑新增额外条件避免编译报错?

错误原因

你将逻辑与操作符&&错误写在了pipe()方法的入参位置,pipe()方法仅接收RxJS操作符作为参数,在操作符外直接拼接逻辑判断不符合语法要求,所以编译器抛出错误。

正确修改方案

把新增的判断条件放到map操作符的回调函数内部,和原有判断做逻辑与即可:

canBeTransferred$ = this.userService
.getCurrentUser()
.pipe(map((user) => 
  (user.data.id === this.ticket.userId || user.data.isCsm || user.data.owner) 
  && this.ticket.status !== 'Archived'
));

拓展说明

如果ticket的status是会动态变更的响应式变量,你需要将ticket的状态也接入流中联动计算,避免ticket更新后canBeTransferred$没有重新触发判断,示例如下(假设ticket$是ticket对应的可观察对象):

canBeTransferred$ = combineLatest([
  this.userService.getCurrentUser(),
  this.ticket$
]).pipe(
  map(([user, ticket]) => 
    (user.data.id === ticket.userId || user.data.isCsm || user.data.owner) 
    && ticket.status !== 'Archived'
  )
);

内容的提问来源于stack exchange,提问作者Rishav Tandon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:24:03