我在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
接受有限数量的操作符,只需将它们拆分为两个pipe
s:
.pipe(
...
).pipe(
...
).subscribe( ... )
tap(() => this.checkDeliveryAddress())
->在此之后,您将获得一个对象,而不是一个数组。这是为什么。