当前位置:网站首页>命令行加载特效 【cli-spinner.js】 实用教程
命令行加载特效 【cli-spinner.js】 实用教程
2022-08-03 08:36:00 【朝阳39】
cli-spinner 官网
https://www.npmjs.com/package/cli-spinner
创建 cli-spinner 的演示项目
- 新建文件夹 cli-spinnerDemo
- 在 cli-spinnerDemo文件夹中打开命令行,执行
npm init -y
会自动生成 package.json
- 安装 cli-spinner
cnpm i cli-spinner
无 cnpm 的朋友先执行 npm i cnpm
- 在package.json中添加项目启动脚本
"start": "node index.js",

- 在 cli-spinnerDemo文件夹中新建文件 index.js 内容为
let Spinner = require("cli-spinner").Spinner;
let spinner = new Spinner("processing.. %s");
spinner.setSpinnerString("|/-\\");
spinner.start();
- 启动项目
npm run start
效果如下
导入 cli-spinner
let Spinner = require("cli-spinner").Spinner;
使用 cli-spinner
自定义加载提示文字
let spinner = new Spinner("加载中.. %s");

配置加载特效
spinner.setSpinnerString("|/-\\");
加载特效通过循环遍历字符串 |/-\\ 实现,可以自定义为其他字符串。
启动加载
spinner.start();
停止加载
spinner.stop(true);
有参数 true 时,停止加载后,会清除加载提示文字,若无参数,则会保留加载提示文字
封装延时函数
为了看清加载特效,通常会延时1s左右再关闭加载特效,可使用以下函数实现
function sleep(timeout = 1000) {
return new Promise((resolve) => setTimeout(resolve, timeout));
}
使用方式如下:
let Spinner = require("cli-spinner").Spinner;
let spinner = new Spinner("加载中.. %s");
spinner.setSpinnerString("|/-\\");
(async function () {
// 开启加载特效
spinner.start();
// 延时2s
await sleep(2000);
// 关闭加载特效;
spinner.stop(true);
})();
function sleep(timeout = 1000) {
return new Promise((resolve) => setTimeout(resolve, timeout));
}
完整演示范例
let Spinner = require("cli-spinner").Spinner;
let spinner = new Spinner("加载中.. %s");
spinner.setSpinnerString("|/-\\");
// 开启加载特效
spinner.start();
// 1s后关闭加载特效
setTimeout(() => {
spinner.stop(true);
}, 1000);

更多功能
可参考官网,或留言我来添加哈!
边栏推荐
猜你喜欢
随机推荐
使用pipreqs导出项目所需的requirements.txt(而非整个环境)
ArcEngine (six) use the tool tool to realize the zoom in, zoom out and translation of the pull box
行业 SaaS 微服务稳定性保障实战
计算机网络之网络安全
RViz报错: Error subscribing: Unable to load plugin for transport ‘compressed‘解决方法
mysql服务器上的mysql这个实例中表的介绍
牛客 - 最佳直播时间 (差分)
ArcEngine(二)加载地图文档
【LeetCode】622.设计循环队列
判断根节点是否等于子节点之和
IDEA的database使用教程(使用mysql数据库)
netstat 及 ifconfig 是如何工作的。
ArcEngine (3) zoom in and zoom out through the MapControl control to achieve full-image roaming
dflow入门2——Slices
Exch:重命名或删除默认邮箱数据库
Qt 下拉复选框(MultiSelectComboBox)(一) 实现下拉框多选,搜索下拉框内容
【愚公系列】2022年07月 Go教学课程 026-结构体
sqlite date field plus one day
NFT到底有哪些实际用途?
ArcEngine(五)用ICommand接口实现放大缩小









