一次code review【keyword: messageOfType】

6 篇文章 0 订阅

原代码:

 // this.warmResult$ = this.service.ctsMachine.maintainance.warmUp.events$.pipe(
    //   filter(
    //     (event: any) =>
    //       event.hasOwnProperty('__typename') &&
    //       event.__typename === warmUp.CTWarmUpMessageTypes.CTWarmUpResult,
    //   ),
    // );
this.warmProgressEvents$=this.service.ctsMachine.warmUp.events$.pipe(
filter(x=>x.__typename===warmUp.CTWarmUpMessageTypes.CTWarmUpProgress),
map(x=>(x as warmUp.CTWarmUpProgress).progress)
 );

修改后:

export function messageOfType<T extends { __typename: string }, U extends T>(
  source: Observable<T>,
  typename: U['__typename'],
): Observable<U> {
  return source.pipe(filter((x): x is U => x.__typename === typename));
}
  warmResult$ = messageOfType<WarmUpEvent, warmUp.WarmUpResult>(
    this.machineService.ctsMachine.warmUp.events$,
    warmUp.WarmUpMessageTypes.WarmUpResult
  ).pipe(map(x => x.result));

放入messageOfType中处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值