Cet article présente principalement l'exemple de code de barre de progression d'impression du terminal nodejs. L'éditeur pense qu'il est plutôt bon. Maintenant, je vais le partager avec vous et le donner comme référence. Suivons l'éditeur pour y jeter un œil
1. Importation de scène
Lorsque nous traitons par lots un grand nombre de fichiers (par exemple : téléchargement/téléchargement, Sauvegarde, compilation, etc.), nous souhaitons souvent connaître la progression actuelle ou le nombre de tâches ayant échoué (réussies) lorsque notre code ou programme a été publié et que l'utilisateur effectue le processus d'installation, un moyen approprié (terminal/ligne de commande) ; progression La barre peut refléter avec précision les étapes et les processus de l'installation, améliorer la convivialité du programme et atténuer dans une certaine mesure les soucis de l'utilisateur en attendant...
Principes de base
, et l'implémentation spécifique est la suivante :-) progress-bar.js
// 这里用到一个很实用的 npm 模块,用以在同一行打印文本 var slog = require('single-line-log').stdout; // 封装的 ProgressBar 工具 function ProgressBar(description, bar_length){ // 两个基本参数(属性) this.description = description || 'Progress'; // 命令行开头的文字信息 this.length = bar_length || 25; // 进度条的长度(单位:字符),默认设为 25 // 刷新进度条图案、文字的方法 this.render = function (opts){ var percent = (opts.completed / opts.total).toFixed(4); // 计算进度(子任务的 完成数 除以 总数) var cell_num = Math.floor(percent * this.length); // 计算需要多少个 █ 符号来拼凑图案 // 拼接黑色条 var cell = ''; for (var i=0;i<cell_num;i++) { cell += '█'; } // 拼接灰色条 var empty = ''; for (var i=0;i<this.length-cell_num;i++) { empty += '░'; } // 拼接最终文本 var cmdText = this.description + ': ' + (100*percent).toFixed(2) + '% ' + cell + empty + ' ' + opts.completed + '/' + opts.total; // 在单行输出文本 slog(cmdText); }; } // 模块导出 module.exports = ProgressBar;
3. Exécutez
progress-bar.js
// 引入工具模块 var ProgressBar = require('./progress_bar'); // 初始化一个进度条长度为 50 的 ProgressBar 实例 var pb = new ProgressBar('下载进度', 50); // 这里只是一个 pb 的使用示例,不包含任何功能 var num = 0, total = 200; function downloading() { if (num <= total) { // 更新进度条 pb.render({ completed: num, total: total }); num++; setTimeout(function (){ downloading(); }, 500) } } downloading();
Les étudiants qui ont besoin d'apprendre js doivent faire attention au site Web chinois php
js tutoriel vidéo, de nombreux tutoriels vidéo js en ligne C'est gratuit à regarder !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!