弹性ASCii 进度栏.
安装
$ npm install progress
使用量
首先我们创建 ProgressBar,给出格式字符串
此外 total,告诉进度栏何时会
视为完整。 在那之后,我们需要做的就是 tick() 适当的.
var ProgressBar = require('progress');
var bar = new ProgressBar(':bar', { total: 10 });
var timer = setInterval(function () {
bar.tick();
if (bar.complete) {
console.log('\ncomplete\n');
clearInterval(timer);
}
}, 100);
选项
这些是选项对象中的密钥,您可以随同进程栏传递
total 如上文的例子所示.
curr当前完成的索引total要完成的勾选总数width默认进度栏的显示宽度到总计stream输出流默认为 stderrhead头字符默认为完整字符complete补全字符默认为"="incomplete默认为 "-" 的字符不完整renderThrottle默认为 16 毫秒的更新之间的最小时间clear选项,在完成时清除栏中默认为虚假callback可选函数, 当进度栏完成时调用
键
这些是您可以在进度栏格式中使用的符号 .
:bar进度栏本身:current当前勾选编号:total全部勾选:elapsed时间( 秒):percent完成百分比:eta估计完成时间(秒):rate每秒滴答比例
自定义键
您可以添加一个自定义符 {'name': value} 方法的对象参数(tick(), (中文(简体) ), update())电话.
var bar = new ProgressBar(':current: :token1 :token2', { total: 3 })
bar.tick({
'token1': "Hello",
'token2': "World!\n"
})
bar.tick(2, {
'token1': "Goodbye",
'token2': "World!"
})
上述例子将导致以下产出.
1: Hello World!
3: Goodbye World!
实例
下载
在我们的下载例子中,每个勾勾都有可变的影响,所以我们通过块 相对于总数适当调整进度栏的长度 长度.
var ProgressBar = require('progress');
var https = require('https');
var req = https.request({
host: 'download.github.com',
port: 443,
path: '/visionmedia-node-jscoverage-0d4608a.zip'
});
req.on('response', function(res){
var len = parseInt(res.headers['content-length'], 10);
console.log();
var bar = new ProgressBar(' downloading [:bar] :rate/bps :percent :etas', {
complete: '=',
incomplete: ' ',
width: 20,
total: len
});
res.on('data', function (chunk) {
bar.tick(chunk.length);
});
res.on('end', function () {
console.log('\n');
});
});
req.end();
以上例子形成了一个与下文类似的进步栏.
downloading [===== ] 39/bps 29% 3.7s
中断
在进度栏执行时显示消息, 使用 interrupt()
var ProgressBar = require('progress');
var bar = new ProgressBar(':bar :current/:total', { total: 10 });
var timer = setInterval(function () {
bar.tick();
if (bar.complete) {
clearInterval(timer);
} else if (bar.curr === 5) {
bar.interrupt('this message appears above the progress bar\ncurrent progress is ' + bar.curr + '/' + bar.total);
}
}, 1000);
您可以在 examples 文件夹.
许可证
麻省理工学院