首页 > 其他分享 >创建浏览器控制台进度条

创建浏览器控制台进度条

时间:2023-11-08 14:44:23浏览次数:40  
标签:currOnBar const 进度条 finished curr 浏览器 100 total 控制台

进度条函数

/**
 * 创建浏览器控制台进度条
 * @param {number} total - 任务总个数
 * @returns {{step: ((function(): ({finished: boolean}))|*)}}
 */
function createProcessBar(total) {
  let curr = 0
  let finished = false

  return {
    step: () => {
      if (finished) return { finished }
      curr++
      const percentage = Number((curr / total * 100).toFixed(2))
      const percentageStr = percentage > 100 ? '100.00%' : `${percentage.toFixed(2)}%`

      const currOnBar = Math.ceil(curr * 100 / total)
      const bar = `${''.padEnd(currOnBar, '|')} ${percentageStr} ${''.padEnd(100 - currOnBar, '.')}`
      console.clear()
      console.log(bar)
      if (currOnBar >= 100) {
        finished = true
      }
      return { finished }
    }
  }
}

使用示例

// usage example

const bar = createProcessBar(100)

const timer = setInterval(() => {
  const { finished } = bar.step()
  if (finished) {
    clearInterval(timer)
  }
}, 1000)

输出

标签:currOnBar,const,进度条,finished,curr,浏览器,100,total,控制台
From: https://www.cnblogs.com/taohuaya/p/17817395.html

相关文章

  • 关闭fireFox浏览器自动更新提示
    打开火狐浏览器并在地址栏中输入“about:config”。点击“接受风险并继续”按钮。在搜索栏输入“app.update.auto”并按下回车键。将“app.update.auto”设置为“false”。找到“app.update.enabled”并将其设置为“false”。app.update.auto.migrated是火狐浏览器的一个......
  • 搭建一个.NetCore控制台程序框架,包含依赖注入/配置/日志等要素
    前言#最近需要开发小工具的场景有点多,上次我用go语言开发了一个hive导出工具,体验还不错,只是go语言的语法实在是喜欢不起来,这次继续试试用C#来开发小工具。这次小工具的功能很简单,数据库数据迁移,不过这不重要,主要是记录一下更适合.NetCore宝宝体质的控制台小工具开发......
  • 直接从 Amazon EC2 控制台模拟竞价型实例集中断的情况
    您现在可以直接从 AmazonEC2控制台将随机的 AmazonEC2竞价型实例中断注入您的竞价型实例集。2022年,我们推出了一项功能,让您可以在 AmazonEC2 控制台中使用 AmazonFaultInjectionSimulator(AmazonFIS) 来模拟 AmazonEC2 收回单个 EC2 竞价型实例时的情况。现......
  • 2023-11-08 360浏览器 new Date().getTime() 获取到的时间戳与其它浏览器(chrome、edge
    问题描述:360浏览器newDate().getTime()获取到的时间戳比chrome或者edge要多出一些时间。原因:360浏览器对newDate的兼容性与其它浏览器厂商不同。部分网友认为是在开了极速模式下的360浏览器,会采用webkit的引擎,对含有T字符的日期时间newDate的时候就会相差几个小时,详情请看:h......
  • 谷歌浏览器 ERR_SSL_PROTOCOL_ERROR
    9月28日,Chromium提交了一个标题为DisableSHA1inTLSserverhandshakesbydefault的部署,默认禁用了TLS握手时的SHA1加密方法,这本是一次正常且正确的发布,因为SHA1已经被公认为不安全的。但是却没想到有一些老旧的系统依然使用了较低版本的OpenSSL,而低版本的OpenSSL存在bug,会强制......
  • 谷歌Chrome及微软Edge浏览器崩溃问题处理
    问题表现近期用户在使用谷歌Chrome及微软Edge浏览器时,出现网页崩溃无法访问的情况chromeedge原因分析根据错误提示,检查日志,系C:\Windows\System32\winhafnt64.dll文件不符合微软签名规则导致的冲突根据提示信息,检查到该文件发行公司为T.E.CSolutions(GZ,)Limited,查询......
  • 浏览器的网页格式出现问题,并且在别人的电脑上没问题,代码也没问题的解决办法
    https://baijiahao.baidu.com/s?id=1777341926071232063&wfr=spider&for=pc看起来像是浏览器设置的问题,可是浏览器设置为了100%,还是原来的情况。缓存清除了也没有用,最后问了同事才发现是电脑的显示设置原因。直接按鼠标缩放没有用。解决办法:右击桌面,显示设置,找到缩放和布局,将......
  • [Python急救站]文本进度条
    完游戏的朋友们,是不是看到那种加载加载进度条,感觉特别不错呢,所以今天就来看看文本进度条怎么做。1.基本的多行文本进度条importtimescale=10#变量scale表示输出进度条的精度print("------执行开始------")foriinrange(scale+1):a,b='**'*i,'..'*(sc......
  • 手机浏览器中实现可拖动div
    vartouchStartX=0;vartouchStartY=0;varmoveX=0;varmoveY=0;vardiv=document.getElementById('yourDivId');//获取你要拖动的divdiv.addEventListener('touchstart',function(e){vartouch=e.touches[0];//获取第一个触点touch......
  • 电脑怎么取消默认浏览器
    如何取消默认浏览器设置1、取消浏览器默认设置的步骤是:打开浏览器,点击右上角的菜单,进入“选项”;在“基本设置”中,取消勾选“启动时检查是否为默认浏览器”。2、首先点击“开始”菜单,找到“控制面板”,并点击打开。其次在控制面板中,你需要找到“默认程序”选项。它可能被放在页面......