在rxjs的angular生成错误中添加另一个"管道"



我在Angular中有一些奇怪的行为。

this.form.valueChanges
.pipe(
startWith(this.form.value),
pairwise(),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),,
tap(() => console.log('aa')),
tap(() => console.log('aa')),
takeUntil(this.destroy$)
)
.subscribe(([oldValue, newValue]) => {
this.updateOrder['id_order'] = newValue.id_order;
});

但是当我添加另一个tap

this.form.valueChanges
.pipe(
startWith(this.form.value),
pairwise(),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
tap(() => console.log('aa')),
takeUntil(this.destroy$)
)
.subscribe(([oldValue, newValue]) => { // console shows that problem is here
this.updateOrder['id_order'] = newValue.id_order;
});

我得到了这个错误

错误TS2548:类型"{}"不是数组类型或没有一个"象征。方法,返回一个迭代器。

从所有方法中移除body并不会改变任何东西。

有人知道发生了什么事吗?

pipe接受有限数量的操作符,只需将它们拆分为两个pipes:

.pipe(
...
).pipe(
...
).subscribe( ... )

tap(() => this.checkDeliveryAddress())->在此之后,您将获得一个对象,而不是一个数组。这是为什么。

相关内容

  • 没有找到相关文章

最新更新