我有一个微调器,我希望微调器在显示之前等待 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});
}
});
有没有可能向我们展示如何取消正在返回到效果的计时器。