最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs 終端打印進(jìn)度條實(shí)例代碼

 更新時(shí)間:2017年04月22日 16:29:10   作者:parksben  
本篇文章主要介紹了nodejs 終端打印進(jìn)度條實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1. 場(chǎng)景導(dǎo)入

當(dāng)我們對(duì)大量文件進(jìn)行批量處理的時(shí)候(例如:上傳/下載、保存、編譯等),常常希望知道當(dāng)前進(jìn)展如何,或者失敗(成功)的任務(wù)有多少;當(dāng)我們的代碼或程序已經(jīng)發(fā)布,用戶在執(zhí)行安裝的過程中,一個(gè)合適的(終端/命令行)進(jìn)度條可以準(zhǔn)確反映安裝的步驟和進(jìn)程,提升程序的可用性,一定程度緩解用戶在等待中的煩惱……

2. 基本原理

首先,在終端打印出文本是件比較容易的事情。那么使用簡(jiǎn)單的文本和符號(hào),就夠自己拼湊出命令行的效果(下面例子):

文件已上傳: 43.60% █████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 150/344

當(dāng)然,進(jìn)度條的效果可以根據(jù)需要自己設(shè)計(jì)啦,我這里只是給大家一個(gè)參考。

這里,我將打印命令行的方法構(gòu)造成一個(gè)工具模塊 progress-bar.js,具體實(shí)現(xiàn)如下 :-)

// 這里用到一個(gè)很實(shí)用的 npm 模塊,用以在同一行打印文本
var slog = require('single-line-log').stdout;

// 封裝的 ProgressBar 工具
function ProgressBar(description, bar_length){
 // 兩個(gè)基本參數(shù)(屬性)
 this.description = description || 'Progress';    // 命令行開頭的文字信息
 this.length = bar_length || 25;           // 進(jìn)度條的長(zhǎng)度(單位:字符),默認(rèn)設(shè)為 25

 // 刷新進(jìn)度條圖案、文字的方法
 this.render = function (opts){
  var percent = (opts.completed / opts.total).toFixed(4);  // 計(jì)算進(jìn)度(子任務(wù)的 完成數(shù) 除以 總數(shù))
  var cell_num = Math.floor(percent * this.length);       // 計(jì)算需要多少個(gè) █ 符號(hào)來拼湊圖案

  // 拼接黑色條
  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);
 };
}

// 模塊導(dǎo)出
module.exports = ProgressBar;

3. Run 起來

基于上面的實(shí)現(xiàn),先說一下這個(gè) progress-bar.js 的用法:

// 引入工具模塊
var ProgressBar = require('./progress_bar');

// 初始化一個(gè)進(jìn)度條長(zhǎng)度為 50 的 ProgressBar 實(shí)例
var pb = new ProgressBar('下載進(jìn)度', 50);

// 這里只是一個(gè) pb 的使用示例,不包含任何功能
var num = 0, total = 200;
function downloading() {
 if (num <= total) {
  // 更新進(jìn)度條
  pb.render({ completed: num, total: total });

  num++;
  setTimeout(function (){
   downloading();
  }, 500)
 }
}
downloading();

run 一下上面的代碼,執(zhí)行效果如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Node.js中path模塊的resolve()和join()方法的區(qū)別

    詳解Node.js中path模塊的resolve()和join()方法的區(qū)別

    這篇文章主要介紹了詳解Node.js中path模塊的resolve()和join()方法的區(qū)別,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • Node.js工具庫yeoman使用介紹

    Node.js工具庫yeoman使用介紹

    這篇文章主要為大家介紹了Node.js工具庫yeoman的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 簡(jiǎn)單了解小程序+node梳理登陸流程

    簡(jiǎn)單了解小程序+node梳理登陸流程

    這篇文章主要介紹了簡(jiǎn)單了解小程序+node梳理登陸流程,以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • Nuxt配合Node在實(shí)際生產(chǎn)中的應(yīng)用詳解

    Nuxt配合Node在實(shí)際生產(chǎn)中的應(yīng)用詳解

    這篇文章主要介紹了Nuxt配合Node在實(shí)際生產(chǎn)中的應(yīng)用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架淺析

    node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架淺析

    在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性,下面這篇文章主要給大家介紹了關(guān)于node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Electron 調(diào)用命令行(cmd)

    Electron 調(diào)用命令行(cmd)

    這篇文章主要介紹了Electron 調(diào)用命令行(cmd),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Windows中徹底刪除Node.js環(huán)境(以及npm)的方法

    Windows中徹底刪除Node.js環(huán)境(以及npm)的方法

    本文詳細(xì)介紹了如何在Windows電腦中徹底刪除Node.js環(huán)境,包括查找安裝路徑、使用控制面板卸載以及手動(dòng)刪除殘留文件夾
    2025-01-01
  • Node.js讀取文件操作教程示例

    Node.js讀取文件操作教程示例

    這篇文章主要為大家介紹了Node.js讀取文件教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • node.js中 redis 的安裝和基本操作示例

    node.js中 redis 的安裝和基本操作示例

    這篇文章主要介紹了node.js中 redis 的安裝和基本操作,結(jié)合實(shí)例形式分析了node.js中Redis下載、安裝、數(shù)據(jù)類型及基本操作技巧,需要的朋友可以參考下
    2020-02-02
  • nodejs實(shí)現(xiàn)生成文件并在前端下載

    nodejs實(shí)現(xiàn)生成文件并在前端下載

    這篇文章主要介紹了nodejs實(shí)現(xiàn)生成文件并在前端下載,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論

精河县| 府谷县| 临江市| 兴业县| 永康市| 巴东县| 广东省| 黎川县| 云安县| 奇台县| 墨竹工卡县| 合作市| 垣曲县| 麻城市| 东山县| 社旗县| 绍兴县| 丰台区| 白玉县| 江陵县| 故城县| 渭南市| 新郑市| 文安县| 额济纳旗| 都昌县| 南昌县| 甘孜| 河间市| 宜兰县| 天水市| 江门市| 开封市| 凯里市| 安平县| 绩溪县| 日土县| 安远县| 平南县| 古浪县| 观塘区|