前端架构: 脚手架之使用Ora在终端中实现输出Loading

ora

  • ora 它主要做的一件事情啊,就是去在命令行当中去输出loading的状态
  • loading在web中容易实现,但是在终端中实现起来是非常复杂的
  • 安装 $ npm i -S ora
  • 可以看到其源码与chalk不同的是, 有很多第三方依赖库

1 )基础用法

import ora from 'ora';const spinner = ora('Loading').start(); // loading 开启
spinner.color = 'red';
spinner.prefixText = 'Downloading ora: ' // 加入前缀
let percent = 0;const inTime = setInterval(() => {percent += 10;spinner.text = `Loading ${percent}%`;if (percent == 100) {spinner.stop();spinner.succeed('Download finished!')clearInterval(inTime)}
}, 300)
  • 从上述交互细节可以看出
    • 在 stop 之前,Loading 都会独立占用整行终端空间
    • 在 stop 之后,独占的一行会被清空
  • 在 ora 这个库中,还有一个个比较亮眼的功能,就是它提供一个promise方法
  • 有一个 oraPromise,我们通过这个方法,可以针对异步任务
  • 当异步任务完成的时候, 结束这个loading

2 )高级用法

import ora, { oraPromise } from 'ora';(async () => {const promise = new Promise((resolve) => {const timer = setTimeout(() => {clearTimeout(timer);resolve();}, 3000)})await oraPromise(promise, {successText: 'success!',failText: 'failed!',prefixText: 'Download ora',text: 'loading',spinner: {interval: 80,frames: ['-', '\\', '|', '/', '-'] // 这种切换,是在 里面几个字符之间做动画,替换默认的loading图标}});
})()
  • 在promise当中去使用的时候,它有一个好处就是你不再需要去关注loading的开始和结束
  • 只要关注你的promise任务就可以了,它是一个异步任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++] 如何对列表(vector),字典(map)等进行排序

对列表(vector)进行排序 C中可以使用std::sort()函数对vector进行排序。 #include <iostream> #include <vector> #include <algorithm>int main() {std::vector<int> nums {4, 2, 8, 6, 5, 3, 1, 7};// 对vector进行升序排序std::sort(nums.begin(…

前端常见面试题之vue3

文章目录 1. vue3比vue2有哪些优势2. 描述vue3的生命周期3. 如何看待vue3中的Composition API 和 Options API4. 如何理解ref、 toRef、和toRefs?5. vue3升级了哪些功能6. Composition API如何实现代码逻辑的复用&#xff08;hook)7. Vue3如何实现响应式的8.Vue3使用Proxy对象…

计算机网络实验八 利用 Java /C++开发网络聊天应用程序

一、实验目的和要求 1)基本掌握利用 Java 开发环境调试应用程序的方法。 2)理解基于套接字开发网络应用程序的过程,深入理解客户/服务器方式工作原理。 3)掌握基于Java和C++开发网络通信程序的方法。 二、实验环境 1)运行 Windows 2008 Server/XP/7 操作系统的 PC 2 台…

vue基础操作(vue基础)

想到多少写多少把&#xff0c;其他的想起来了在写。也写了一些css的 input框的双向数据绑定 html <input value"123456" type"text" v-model"account" input"accou" class"bottom-line bottom" placeholder"请输入…

golang学习1,dea的golang-1.22.0

参考&#xff1a;使用IDEA配置GO的开发环境备忘录-CSDN博客 1.下载All releases - The Go Programming Language (google.cn) 2.直接next 3.window环境变量配置 4.idea的go插件安装 5.新建go项目找不到jdk解决 https://blog.csdn.net/ouyang111222/article/details/1361657…

c++高精度

高精度是什么 计算数据过大超过long long的数据范围时&#xff0c;需要引进高精度算法。将数一位一位的存在数组中输出。 高精度加法 #include<iostream> #include<cstring> using namespace std;int main() {char a1[10000], b1[10000];//字符存储数字int a[10…

React Native调用摄像头画面及拍照和保存图片到相册全流程

今天主要做了一个demo,功能很简单,就是调用手机摄像头画面,并且可以通过按钮控制拍照以及将图片保存到手机相册的功能,接下来我将从创建项目开始一步一步完成这个demo,各位只需要复制粘贴即可 创建React Native项目 npx react-native init yx_rnDemo --version 0.70.6 // 这里…

虚拟列表【vue】等高虚拟列表/非等高虚拟列表

文章目录 1、等高虚拟列表2、非等高虚拟列表 1、等高虚拟列表 参考文章1 参考文章2 <!-- eslint-disable vue/multi-word-component-names --> <template><divclass"waterfall-wrapper"ref"waterfallWrapperRef"scroll"handleScro…

280.【华为OD机试真题】高效货运(贪心算法—JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-高效货运二.解题思路三.题解代码Python题解代码…

服务器相关概念1

客户端 网络节点中负责消耗资源的电脑 服务器 负责对外提供网络资源的电脑 服务器和普通电脑区别 服务器有web服务器软件&#xff0c;IIS&#xff0c;Apache&#xff0c;phpstudy IP地址 每台计算机唯一地址&#xff1b; 格式&#xff08;a.b.c.d&#xff09;点分时进制&…

unordered_map和map的区别

unordered_map 和 map 都是 C STL 中的关联数组容器&#xff0c;用于存储键值对&#xff08;key-value pairs&#xff09;。其中&#xff0c;键是唯一的&#xff0c;而值则可以重复。 它们的主要区别在于实现方式不同。map 实现了红黑树&#xff0c;因此可以自动按照键值排序&…

数据湖delta lake

Table of Content1. 课程2. 前置技能3. 一、数据湖概念[了解] 3.1. 1.1 企业的数据困扰 3.1.1. 困扰一&#xff1a;互联网的兴起和数据孤岛3.1.2. 困扰二&#xff1a;非结构化数据3.1.3. 困扰三&#xff1a;保留原始数据3.1.4. 补充&#xff1a;什么是结构化&#xff1f; 3.1.4…

09 Redis之分布式系统(数据分区算法 + 系统搭建与集群操作)

6 分布式系统 Redis 分布式系统&#xff0c;官方称为 Redis Cluster&#xff0c;Redis 集群&#xff0c;其是 Redis 3.0 开始推出的分布式解决方案。其可以很好地解决不同 Redis 节点存放不同数据&#xff0c;并将用户请求方便地路由到不同 Redis 的问题。 什么是分布式系统?…

音乐格式转换软件有哪些?5款必备神器

音乐格式转换软件有哪些&#xff1f;音乐&#xff0c;作为人类情感的载体&#xff0c;伴随着我们生活的每一个角落。在享受音乐的同时&#xff0c;我们有时也面临着音乐格式不兼容的问题。不用担心&#xff0c;今天我将为大家揭秘五款音乐格式转换软件&#xff0c;让你的音乐之…

华为配置Mesh普通业务示例

配置Mesh普通业务示例 组网图形 图1 配置Mesh组网示意图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 在企业内部各区域通过建立Mesh无线回传链路&#xff0c;实现无线覆盖区域拓展&#xff0c;降低有线部署成本。 组网需求 AC组网方式&#xff1a…

sqllabs的order by注入

当我们在打开sqli-labs的46关发现其实是个表格&#xff0c;当测试sort等于123时&#xff0c;会根据列数的不同来进行排序 我们需要利用这个点来判断是否存在注入漏洞&#xff0c;通过加入asc 和desc判断页面有注入点 1、基于使用if语句盲注 如果我们配合if函数&#xff0c;表达…

面试经典150题——存在重复元素 II

​"The harder you work for something, the greater youll feel when you achieve it." - Unknown 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 该思路很简单&#xff0c;就是暴力的查找每一个元素&#xff0c;查看是否满足题目要求&#xff0c;满足就…

76. 最小覆盖子串(滑动窗口)

用i和j表示滑动窗口的左边界和右边界&#xff0c;思路如下&#xff1a; j右移&#xff0c;直到i-j内包含住了t的所有元素i右移&#xff0c;去除掉左边多余元素保留最小长度&#xff0c;同时i右移&#xff0c;此时确定i-j的子串一定不能完全覆盖t&#xff0c;于是重复1&#xf…

Darkhole 2

kali:192.168.223.128 靶机:192.168.223.152 主机发现 nmap -sP 192.168.223.0/24 端口扫描 nmap -sV -p- -A 192.168.223.152 开启了22 80 端口 web 进入登录界面发现没有注册按钮了 扫一下目录 gobuster dir -u http://192.168.223.152 -x html,txt,php,bak,zip,git --wor…

单片机精进之路-5矩阵键盘扫描

如下图&#xff0c;先在p3口输出0xfe&#xff0c;再读取p3口的电平&#xff0c;如果没有按键按下&#xff0c;temp & 0xf0还是0xf0&#xff0c;如果又第一个键按下&#xff0c;temp & 0xf0还是0xee&#xff0c;其他按键由此类推可得。 //4*4键盘检测程序,按下键后相应…