From aeb52e82471784681b7ef4cdb96aba876b13a8d4 Mon Sep 17 00:00:00 2001 From: Nicholas Jamieson Date: Sat, 4 Nov 2017 11:15:10 +1000 Subject: [PATCH] fix(scheduler): prevent unwanted clearInterval In AsyncAction, this.pending was assigned before the call to recycleAsyncId. That prevented the interval from being re-used resulting in the interval being cleared and re-created for each notification. Closes #3042 --- src/scheduler/AsyncAction.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/scheduler/AsyncAction.ts b/src/scheduler/AsyncAction.ts index 31a95c73eff..432edbab2a9 100644 --- a/src/scheduler/AsyncAction.ts +++ b/src/scheduler/AsyncAction.ts @@ -29,10 +29,6 @@ export class AsyncAction extends Action { // Always replace the current state with the new state. this.state = state; - // Set the pending flag indicating that this action has been scheduled, or - // has recursively rescheduled itself. - this.pending = true; - const id = this.id; const scheduler = this.scheduler; @@ -61,6 +57,10 @@ export class AsyncAction extends Action { this.id = this.recycleAsyncId(scheduler, id, delay); } + // Set the pending flag indicating that this action has been scheduled, or + // has recursively rescheduled itself. + this.pending = true; + this.delay = delay; // If this action has already an async Id, don't request a new one. this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);