【发布时间】:2023-01-23 01:49:23
【问题描述】:
当你有一些输入字段并且你必须在值更改时获取一些东西时的经典任务。假设我们使用 Angular Reactive Forms。例子:
orders$ = inputControl.valueChanges.pipe(
switchMap((value) => {
return someService.fetch(value);
})
);
现在我们还应该以某种方式管理加载状态。我通常使用tap:
orders$ = inputControl.valueChanges.pipe(
tap(() => { loading = true }), // or loading$.next(true) if loading is a subject
switchMap((value) => {
return someService.fetch(value);
}),
tap(() => { loading = false }), // or loading$.next(false) if loading is a subject
);
然而,我们似乎可以通过某种方式避免在 tap 中赋值,而是使用 RxJs。
但是我找不到处理它的方法。
对我来说,理想解决方案的用法是
orders$ = <some abstraction here that depends on inputControl.valueChanges and fetching>
loading$ = <some abstraction here that depends on fetching>
【问题讨论】:
标签: javascript angular rxjs reactive-programming