У меня есть счетчик. Я хочу, чтобы счетчик подождал x секунд, прежде чем он отобразится. Однако, если REQUEST_DEACTIVATE_SPINNER вызывается в то время, когда счетчик ожидает завершения тайм-аута, он должен остановить выполнение действия ACTIVATE_SPINNER. Я бы хотел отменить активный таймер. Это то, что у меня есть до сих пор.
@Effect() spinnerActive$ = this.actions$
.ofType(REQUEST_ACTIVATE_SPINNER, REQUEST_DEACTIVATE_SPINNER)
.switchMap(action => {
// create a timer and return it active event sent when timer completes
if (action.type === REQUEST_ACTIVATE_SPINNER) {
timer$ = Observable.timer(action.payload.delay || 0)
.switchMap(() =>
Observable.of({type: ACTIVATE_SPINNER})
);
}
if (action.type === REQUEST_DEACTIVATE_SPINNER) {
// check to see if a timer is running if it is cancel it
if (timer$) {
// cancel the timer
}
return Observable.of({type: DEACTIVATE_SPINNER});
}
});
Может ли кто-нибудь показать нам, как отменить таймер, который возвращается в Эффект.