跳至主要内容

函数: withProgress()

withProgress<R>(options, task): Promise<R>

在 Podman 桌面中显示进度。在运行给定回调函数期间以及它返回的 Promise 未解析或拒绝时,将显示进度。进度应显示的位置(以及其他详细信息)由传递的 ProgressOptions 定义。

类型参数

R

参数

options: ProgressOptions

任务的详细信息选项

task

返回一个 Promise 的回调函数。进度状态可以使用提供的 Progress 对象进行报告。

要报告离散进度,请使用 increment 来指示已完成的工作量。每次使用 increment 值的调用都将累加起来,并反映为总进度,直到达到 100%(例如 10 的值表示完成了 10% 的工作)。请注意,目前只有 ProgressLocation.Notification 能够显示离散进度。

要监控操作是否已被用户取消,请使用提供的 CancellationToken。请注意,目前只有 ProgressLocation.Notification 支持显示取消按钮来取消长时间运行的操作。

返回值

Promise<R>

任务回调函数返回的 Promise。

示例

这是一个简单的示例

await window.withProgress({ location: ProgressLocation.TASK_WIDGET, title: `Running task` },
async progress => {
progress.report({message: 'task1' });
await task1();
progress.report({increment: 50, message: 'task2' });
await task2();
},
);

如果在任务回调函数中抛出错误,则会传播该错误。

try {
await window.withProgress(
{ location: ProgressLocation.TASK_WIDGET, title: `Running task` },
async progress => {
throw new Error('error when running a task');
},
);
} catch (error) {
// do something with the error
}

您可以从任务回调函数中返回值

const result: number = await window.withProgress<number>(
{ location: ProgressLocation.TASK_WIDGET, title: `Running task` },
async progress => {
// compute something
return 55;
},
);

定义在

packages/extension-api/src/extension-api.d.ts:2200