diff --git a/src/vs/workbench/api/common/extHostTask.ts b/src/vs/workbench/api/common/extHostTask.ts index fd67691d82b35431d329c1256790bc7d070dd92e..32f042f6cd717a3337f476772c5a349563fa3bfd 100644 --- a/src/vs/workbench/api/common/extHostTask.ts +++ b/src/vs/workbench/api/common/extHostTask.ts @@ -706,7 +706,7 @@ export class WorkerExtHostTask extends ExtHostTaskBase { public async executeTask(extension: IExtensionDescription, task: vscode.Task): Promise { const dto = TaskDTO.from(task, extension); if (dto === undefined) { - return Promise.reject(new Error('Task is not valid')); + throw new Error('Task is not valid'); } // If this task is a custom execution, then we need to save it away @@ -720,7 +720,8 @@ export class WorkerExtHostTask extends ExtHostTaskBase { // Always get the task execution first to prevent timing issues when retrieving it later const execution = await this.getTaskExecution(await this._proxy.$getTaskExecution(dto), task); - return this._proxy.$executeTask(dto).then(() => execution); + this._proxy.$executeTask(dto).catch(error => { throw new Error(error); }); + return execution; } protected provideTasksInternal(validTypes: { [key: string]: boolean; }, taskIdPromises: Promise[], handler: HandlerData, value: vscode.Task[] | null | undefined): { tasks: tasks.TaskDTO[], extension: IExtensionDescription } { diff --git a/src/vs/workbench/api/node/extHostTask.ts b/src/vs/workbench/api/node/extHostTask.ts index 8f21cd8c3166b20dae62af5409208185439477a6..b785156b037413d28645cdc30c420574d45794f0 100644 --- a/src/vs/workbench/api/node/extHostTask.ts +++ b/src/vs/workbench/api/node/extHostTask.ts @@ -59,7 +59,8 @@ export class ExtHostTask extends ExtHostTaskBase { throw new Error('Task from execution DTO is undefined'); } const execution = await this.getTaskExecution(executionDTO, task); - return this._proxy.$executeTask(executionDTO.task).then(() => execution); + this._proxy.$executeTask(executionDTO.task).catch(error => { throw new Error(error); }); + return execution; } else { const dto = TaskDTO.from(task, extension); if (dto === undefined) { @@ -74,7 +75,8 @@ export class ExtHostTask extends ExtHostTaskBase { } // Always get the task execution first to prevent timing issues when retrieving it later const execution = await this.getTaskExecution(await this._proxy.$getTaskExecution(dto), task); - return this._proxy.$executeTask(dto).then(() => execution); + this._proxy.$executeTask(dto).catch(error => { throw new Error(error); }); + return execution; } }