xKx*_*xKx 21 javascript rxjs typescript rxjs5 angular
我在Angular2的Component中实现了以下功能:
export class MypageEditComponent {
ngOnInit() {
this.timer = Observable.timer(100, 100);
this.timer.subscribe(t => {
this.setFormData();
}
private setFormData() {
this.editUserAcountType = this.authStore.registerInfo.account_type;
this.editAddress = this.authStore.registerInfo.email;
this.editUserName = this.authStore.registerInfo.username;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在Observable.timer正确存储值后停止重复setFormData().
但不知道怎么样,请告诉我.
mar*_*tin 42
基本上有两种方式:
unsubscribe()从subscribe()调用返回的Subscription对象.只是unsubscribe,你可以不喜欢这样.
ngOnInit() {
this.subscription = timer(100, 100).subscribe(t => {
this.setFormData();
});
}
private setFormData() {
...
this.subscription.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用Subject来完成Observable via takeUntil()运算符:
this.subject = new Subject();
ngOnInit() {
timer(100, 100).pipe(
takeUntil(this.subject),
).subscribe(t => this.setFormData());
}
private setFormData() {
...
this.subject.next();
}
Run Code Online (Sandbox Code Playgroud)
看看这些:
2019年1月:更新了RxJS 6
Par*_*ain 12
unsubscribe当你想要像这样停止计时器可观察时,你可以使用方法
this.timer = Observable.timer(100, 100);
this.subscription = this.timer.subscribe(t => {
this.setFormData();
});
.............
this.subscription.unsubscribe();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27063 次 |
| 最近记录: |