Ngrx Angular 2アプリを作成していて、一定時間が経過してもHTTPコールを取得しようとしていました。私は関数の使用を見ましたが、Ngrxの場合、@Effect()
の内部でサービスコールが行われると、エラーが発生します。Ngrx Store、Effects、Http Ajax Polling Setup on 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);
タイプのエラーは、次のとおり
rxjs 5 interval()
で
Observable.timerを停止または登録解除するものは何ですか?必要なデータを受け取った後でさえも、これは永遠に続くのではないでしょうか? –
何もそれを停止します。 OPはポーリングを望んでいた。 – cartant