From f6a6db18c4138ae6bd43f80dfa212500f7395772 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 10 Aug 2018 10:39:44 +0200 Subject: [PATCH] debt - accept a Thenable instead of a WinJS.Promise --- src/vs/platform/lifecycle/common/lifecycle.ts | 9 +++++---- .../lifecycle/electron-browser/lifecycleService.ts | 2 +- .../extensions/electron-browser/extensionHost.ts | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/vs/platform/lifecycle/common/lifecycle.ts b/src/vs/platform/lifecycle/common/lifecycle.ts index 3a92380ea5f..3dda9ff7a05 100644 --- a/src/vs/platform/lifecycle/common/lifecycle.ts +++ b/src/vs/platform/lifecycle/common/lifecycle.ts @@ -7,6 +7,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { Event } from 'vs/base/common/event'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import { isThenable } from 'vs/base/common/async'; export const ILifecycleService = createDecorator('lifecycleService'); @@ -23,7 +24,7 @@ export interface ShutdownEvent { /** * Allows to veto the shutdown. The veto can be a long running operation. */ - veto(value: boolean | TPromise): void; + veto(value: boolean | Thenable): void; /** * The reason why Code is shutting down. @@ -108,12 +109,12 @@ export const NullLifecycleService: ILifecycleService = { }; // Shared veto handling across main and renderer -export function handleVetos(vetos: (boolean | TPromise)[], onError: (error: Error) => void): TPromise { +export function handleVetos(vetos: (boolean | Thenable)[], onError: (error: Error) => void): TPromise { if (vetos.length === 0) { return TPromise.as(false); } - const promises: TPromise[] = []; + const promises: Thenable[] = []; let lazyValue = false; for (let valueOrPromise of vetos) { @@ -123,7 +124,7 @@ export function handleVetos(vetos: (boolean | TPromise)[], onError: (er return TPromise.as(true); } - if (TPromise.is(valueOrPromise)) { + if (isThenable(valueOrPromise)) { promises.push(valueOrPromise.then(value => { if (value) { lazyValue = true; // veto, done diff --git a/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts b/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts index 34c1b8e99a9..08e31b2ad05 100644 --- a/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts +++ b/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts @@ -83,7 +83,7 @@ export class LifecycleService implements ILifecycleService { } private onBeforeUnload(reason: ShutdownReason): TPromise { - const vetos: (boolean | TPromise)[] = []; + const vetos: (boolean | Thenable)[] = []; this._onWillShutdown.fire({ veto(value) { diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index f6f88704386..e72d4340789 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -506,7 +506,7 @@ export class ExtensionHostProcessWorker { } }); - event.veto(TPromise.wrap(timeout(100 /* wait a bit for IPC to get delivered */)).then(() => false)); + event.veto(timeout(100 /* wait a bit for IPC to get delivered */).then(() => false)); } } }