我正在創建一個Ngrx Angular 2應用程序,並試圖讓我的http調用在一段時間間隔後繼續輪詢。我已經看到使用函數,但是在Ngrx的情況下,當服務調用在@Effect()
內完成時,它會發生錯誤。請告知:Ngrx Store,Effects,Http Ajax輪詢Angular 2的設置
@Injectable()
export class TasksEffects {
constructor(
private actions$: Actions,
private TS: TaskService
){}
@Effect()
onLoadTasksLoadTasks$: Observable<Action> = this.actions$.ofType(tasksActions.ActionTypes.LOAD_TASKS)
.switchMap(() => {
return this.TS.index()
.map((res) => new tasksActions.LoadTasksSuccessAction(res.json()))
.catch(err => of(new tasksActions.LoadTasksFailAction(err)));
});
我想每10秒運行一次switchMap函數。這不起作用。
@Effect()
onLoadTasksLoadTasks$: Observable<Action> = this.actions$.ofType(tasksActions.ActionTypes.LOAD_TASKS)
.switchMap(() => {
return this.TS.index()
.map((res) => new tasksActions.LoadTasksSuccessAction(res.json()))
.catch(err => of(new tasksActions.LoadTasksFailAction(err)));
}).interval(10000);
類型的錯誤是:
什麼停止或取消訂閱Observable.timer?即使在收到需要的數據之後,這難道不會永遠持續嗎? –
沒有什麼能阻止它。 OP想要投票。 – cartant