Angular 订阅在值更改之前不起作用(需要先初始化)
Angular Subscribe Doesn't work Until Value Changes ( Need first initialize )
this.skusChangeSubscription = this.productForm.get('skus').valueChanges
.pipe(debounceTime(600)).subscribe(skusValue => {
console.log('SKUS: ', skusValue);
...
...
});
我需要代码直接 运行 此订阅方法一次,直到值发生变化。它在值更改时起作用,但在值更改之前订阅时不起作用。订阅后我需要 运行 一次。
试试这个:
this.skusChangeSubscription = this.productForm.get('skus')
.pipe(take(1)).subscribe(skusValue => {
console.log('SKUS: ', skusValue);
...
...
});
尝试使用 startWith
运算符。在从源可观察对象发出之前,它首先发出指定为参数的项目。
this.skusChangeSubscription = this.productForm.get('skus').valueChanges
.pipe(
startWith(this.productForm.get('skus').value),
debounceTime(600)
)
.subscribe(skusValue => {
console.log('SKUS: ', skusValue);
...
...
});
this.skusChangeSubscription = this.productForm.get('skus').valueChanges
.pipe(debounceTime(600)).subscribe(skusValue => {
console.log('SKUS: ', skusValue);
...
...
});
我需要代码直接 运行 此订阅方法一次,直到值发生变化。它在值更改时起作用,但在值更改之前订阅时不起作用。订阅后我需要 运行 一次。
试试这个:
this.skusChangeSubscription = this.productForm.get('skus')
.pipe(take(1)).subscribe(skusValue => {
console.log('SKUS: ', skusValue);
...
...
});
尝试使用 startWith
运算符。在从源可观察对象发出之前,它首先发出指定为参数的项目。
this.skusChangeSubscription = this.productForm.get('skus').valueChanges
.pipe(
startWith(this.productForm.get('skus').value),
debounceTime(600)
)
.subscribe(skusValue => {
console.log('SKUS: ', skusValue);
...
...
});