UNPKG

@writ/utils

Version:
40 lines (36 loc) 1.15 kB
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; }