diff --git a/src/vs/platform/state/node/stateService.ts b/src/vs/platform/state/node/stateService.ts index debf184e7d4..46dd2baa43e 100644 --- a/src/vs/platform/state/node/stateService.ts +++ b/src/vs/platform/state/node/stateService.ts @@ -25,20 +25,18 @@ export class FileStorage extends Disposable { private storage: StorageDatabase = Object.create(null); private lastSavedStorageContents = ''; - private readonly flushDelayer: ThrottledDelayer | undefined; + private readonly flushDelayer = this._register(new ThrottledDelayer(this.saveStrategy === SaveStrategy.IMMEDIATE ? 0 : 100 /* buffer saves over a short time */)); private initializing: Promise | undefined = undefined; private closing: Promise | undefined = undefined; constructor( private readonly storagePath: URI, - saveStrategy: SaveStrategy, + private readonly saveStrategy: SaveStrategy, private readonly logService: ILogService, private readonly fileService: IFileService, ) { super(); - - this.flushDelayer = saveStrategy === SaveStrategy.IMMEDIATE ? undefined : this._register(new ThrottledDelayer(100 /* buffer saves over a short time */)); } init(): Promise { @@ -119,11 +117,7 @@ export class FileStorage extends Disposable { return; // already about to close } - if (this.flushDelayer) { - return this.flushDelayer.trigger(() => this.doSave()); - } - - return this.doSave(); + return this.flushDelayer.trigger(() => this.doSave()); } private async doSave(): Promise { @@ -151,9 +145,7 @@ export class FileStorage extends Disposable { async close(): Promise { if (!this.closing) { - this.closing = this.flushDelayer - ? this.flushDelayer.trigger(() => this.doSave(), 0 /* as soon as possible */) - : this.doSave(); + this.closing = this.flushDelayer.trigger(() => this.doSave(), 0 /* as soon as possible */); } return this.closing;