从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
相关产品推荐
相关产品推荐

