処理のプログレス表示、処理中のキャンセル要求に対応していない。
type ProgressCallback = {
/**
* プログレスUIを表示開始するときにProgressCallback受け取り側が呼び出す。
* 呼び出したProgressCallback受け取り側は、closeProgressDialog()を呼び出さなくてはならない。
*/
showProgressDialog: (
/**
* ProgressCallback提供側が、プログレスUIなどでキャンセル要求が発生したときに呼び出す。2回目以降の呼び出しでは何も変化しない。
*/
requestCancel:()=>void
) => Promise<{
/**
* プログレスUIの表示内容を変化させたいときにProgressCallback受け取り側が呼び出す。
*/
updateProgress: (
/** 処理の進行状態をパーセントであらわす。0.0 <= progressPercent <= 100.0 */
progressPercent: number,
progressDetail:
| null
| {
networkTransport: {
networkSpeedMbps: number,
retryCount: number,
}
}
,
/** trueでキャンセル要求に反応できることをあらわす。 */
isEnableCancel: boolean
) => void,
/**
* プログレスUIの表示終了するときにProgressCallback受け取り側が呼び出す。
*/
closeProgressDialog: () => Promise<void>,
}>,
}
s3GetListWithProgress(
downloadFolderPath: string,
downloadFileList: AsyncIterable<DownloadS3FileInfo>,
updateProgress: (
/** 処理の進行状態をパーセントであらわす。0.0 <= progressPercent <= 100.0 */
progressPercent: number,
networkSpeedMbps: number,
retryCount: number,
/** trueでキャンセル要求に反応できることをあらわす。 */
isEnableCancel: boolean
) => void,
): {
requestCancel:()=>void,
result:Promise<void>,
}
https://rocketchat.lecre.work/group/Dev_BS?msg=ZksAYcDSQcZydLdCa
https://rocketchat.lecre.work/group/Dev_BS?msg=f66rhcSpeSjGWGLuE