【发布时间】:2021-06-30 00:35:09
【问题描述】:
我目前有一个如下所示的解决方案:
当用户在视图中导航时,将执行 api 调用以获取该特定视图的数据。
该数据随后又用于确定在用户执行操作时是否应出现对话框。
目前该解决方案正在运行,但当用户具有高延迟并在 api 请求完成之前执行上述操作时,我可以想到一个潜在的问题。
我不想在每次用户导航时都显示加载指示器,因为在使用这样的系统时它会困扰我。我宁愿让用户在她/他想要执行操作时等待。
此外,我确实有一个 observable,它指示我计划以某种方式使用的 api 请求是否正在加载。
为了清楚起见,代码看起来像这样,只是对名称做了一些小改动。
actionPerformed$ = createEffect(() =>
this.actions$.pipe(
ofType(performAction),
withLatestFrom(entities$),
mergeMap(data => {
let payload = data[0];
let dataFromApi = data[1];
...
...
})
想到一个听起来不太有效的想法是让一个操作员检查条件并在加载时抛出错误,然后在短暂延迟后重试。
你有更好的建议吗?我一直在看 delayWhen 但似乎没有像这样的延迟。我宁愿有一个“门”,它在 loading$ 设置为 false 时打开流,并且在满足该条件时立即发出该值。
提前致谢!
【问题讨论】:
-
你使用路由吗?
-
@Yuriy 是的,我确实使用路由。
标签: angular typescript rxjs ngrx