函数: 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;
},
);