From b71ea763dc378542524c3d53268a9713c1c563a2 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 7 Sep 2018 09:45:57 +0200 Subject: [PATCH] :dancing_men: remove asWinJSPromise #56137 --- src/vs/base/common/async.ts | 29 ------------------- .../quickopen/browser/gotoSymbolHandler.ts | 9 +++--- 2 files changed, 5 insertions(+), 33 deletions(-) diff --git a/src/vs/base/common/async.ts b/src/vs/base/common/async.ts index 8f5b58de6f0..2498d0bdfaf 100644 --- a/src/vs/base/common/async.ts +++ b/src/vs/base/common/async.ts @@ -58,35 +58,6 @@ export function createCancelablePromise(callback: (token: CancellationToken) }; } -export function asWinJsPromise(callback: (token: CancellationToken) => T | TPromise | Thenable): TPromise { - let source = new CancellationTokenSource(); - return new TPromise((resolve, reject) => { - let item = callback(source.token); - if (item instanceof TPromise) { - item.then(result => { - source.dispose(); - resolve(result); - }, err => { - source.dispose(); - reject(err); - }); - } else if (isThenable(item)) { - item.then(result => { - source.dispose(); - resolve(result); - }, err => { - source.dispose(); - reject(err); - }); - } else { - source.dispose(); - resolve(item); - } - }, () => { - source.cancel(); - }); -} - export function asThenable(callback: () => T | TPromise | Thenable): Thenable { return new TPromise((resolve, reject) => { let item = callback(); diff --git a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts index db6a31382e6..4c52f566c32 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts @@ -26,7 +26,8 @@ import { overviewRulerRangeHighlight } from 'vs/editor/common/view/editorColorRe import { GroupIdentifier, IEditorInput } from 'vs/workbench/common/editor'; import { IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; import { IEditorGroup } from 'vs/workbench/services/group/common/editorGroupsService'; -import { asWinJsPromise } from 'vs/base/common/async'; +import { asThenable } from 'vs/base/common/async'; +import { CancellationToken } from 'vs/base/common/cancellation'; export const GOTO_SYMBOL_PREFIX = '@'; export const SCOPE_PREFIX = ':'; @@ -483,8 +484,8 @@ export class GotoSymbolHandler extends QuickOpenHandler { if (this.outlineToModelCache[modelId]) { return TPromise.as(this.outlineToModelCache[modelId]); } - - return asWinJsPromise(token => getDocumentSymbols(model, token)).then(entries => { + // TODO@Ben - QuickOpenHandler#getResult should support cancellation + return TPromise.wrap(asThenable(() => getDocumentSymbols(model, CancellationToken.None)).then(entries => { const model = new OutlineModel(this.toQuickOpenEntries(entries)); @@ -492,7 +493,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { this.outlineToModelCache[modelId] = model; return model; - }); + })); } } -- GitLab