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

从Observable生成数组后无法执行操作的问题求助

从Observable生成数组后无法执行操作的问题求助

我现在碰到一个棘手的问题:我想操作一个从Observable生成的数组,但奇怪的是只有用console.log的时候能看到这个数组存在,实际写代码对它进行操作就会报错。

先给大家看看我的TypeScript代码,最开始我是这么写的:

constructor(public serVice: SerService) {
  this.serVice.lineupp$.subscribe({
    next: (value: any) => this.serVice.racers.push(value[0]);
    
    for (i = 0; i <= this.serVice.racers[0].lineups[0].position.length -1; i++) {
      this.serVice.sections.push(this.serVice.racers[0].lineups[0].position[i]);
      this.serVice.sections.push(this.serVice.racers[0].lineups[1].position[i]);
    }
  })
}

我发现TypeScript根本不允许我这么写,next回调后面不能直接跟着循环代码。

后来我把循环移到了subscribe外面,代码变成这样:

constructor(public serVice: SerService) {
  this.serVice.lineupp$.subscribe({
    next: (value: any) => this.serVice.racers.push(value[0]);
  })
  
  for (i = 0; i <= this.serVice.racers[0].lineups[0].position.length -1; i++) {
    this.serVice.sections.push(this.serVice.racers[0].lineups[0].position[i]);
    this.serVice.sections.push(this.serVice.racers[0].lineups[1].position[i]);
  }
}

结果还是不行,代码直接报错了。

我的需求其实很简单:就是在通过subscribe把Observable的内容push到racers数组之后,对这个数组做一些处理,把指定的内容再push到sections数组里,但现在不管怎么调整代码位置,都没法实现这个功能,有没有大佬能帮我看看问题出在哪?

备注:内容来源于stack exchange,提问作者almostasnecessary

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:10:25