提交 d52f137e 编写于 作者: A Alex Ross

Return task execution early from executeTask

Fixes #100361
上级 1abf21d3
......@@ -706,7 +706,7 @@ export class WorkerExtHostTask extends ExtHostTaskBase {
public async executeTask(extension: IExtensionDescription, task: vscode.Task): Promise<vscode.TaskExecution> {
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<void>[], handler: HandlerData, value: vscode.Task[] | null | undefined): { tasks: tasks.TaskDTO[], extension: IExtensionDescription } {
......
......@@ -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;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册