我是Ngrx的新手,在使用Ngrx效果设置轮询时遇到问题
我已经尝试过提到How to do http polling in ngrx effect的答案,但这似乎无法按我的解决方案预期的那样工作。我觉得这可能是因为我的退货声明
LoadProcessesByUser$: Observable<Action> = this.actions$.pipe(
ofType(AppActions.LoadProcessesByUser),
switchMap(() => {
interval(100).pipe(
startWith(0),
mapTo(this.actions$)
);
return this.apiService.getUserProcesses(this.userService.user.lanId).pipe(
map(result => new LoadProcessesSuccess(result)),
catchError(error => of(new LoadFailure(error)))
);
})
);
我希望看到这种效果每100毫秒被调用一次,但是看来,只有在我调度LoadProcessByUser()时才会调用该效果
请注意;我希望在应用程序的整个生命周期中都可以运行该轮询。
谢谢
答案 0 :(得分:0)
您没有对interval
做任何事情,您将必须返回间隔并在interval
的{{1}}内添加服务呼叫。
例如,如果您不需要pipe
,也可以基于LoadProcessesByUser
创建一个流
interval
中找到更多信息