@writ/utils
Version:
My tool kit
40 lines (36 loc) • 1.15 kB
JavaScript
import progressSpeedmeter from './progress-speedmeter';
/**
* 上传进度
* @param {number} length
* @param {function} onProgress
* @param {number} delay
*/
export default function fakeProgress(length, onProgress, delay) {
const ret = res => res;
if (length > 0) {
const startTime = Date.now();
const progress = {
length, // 文件总长度
transferred: 0, // 已发送
runtime: startTime, // 已耗时
percentage: 0, // 已上传的占比
};
const speedometer = progressSpeedmeter(length);
const getProgress = function (percent) {
progress.percentage = percent;
progress.runtime = Date.now() - startTime;
progress.transferred = length * progress.percentage;
onProgress(progress);
};
const timer = setInterval(function () {
getProgress(speedometer(progress.percentage));
}, delay > 30 ? delay : 30);
ret.end = function () {
getProgress(1);
clearInterval(timer);
};
} else {
ret.end = function () { };
}
return ret;
}