luban-box
v1.0.2
Published
task retry util
Downloads
7
Readme
安装
npm install luban-box
引入
import { task, encrypts, date, number } from "luban-box";
用例
/**
* 任务队列,常规调用
*/
new task.Task({
run() {
//具体的任务代码,这里的count为Task的内部属性:执行次数;
console.log("run 1 ", this.count);
return {
success: this.count >= 3,//返回成功失败的标志
};
},
delay: 1000, //延迟多少ms执行
retry: 5, //失败时重试的次数
interval: 2000 //两次执行的间隔ms
})
/**
* 任务队列,promise形式的调用
*/
new task.Task({
async run() {
//具体的任务代码,这里的count为Task的内部属性:执行次数;
console.log("run 2 ", this.count);
return {
success: this.count >= 3,//返回成功失败的标志
data: "task 2 " + this.count
};
},
delay: 1000,
retry: 5,
interval: 2000
}).then((data) => {
//处理run 1返回的数据data
console.log("result 2", data);
//如果有第二个任务,则创建第二个任务
return new task.Task({
async run() {
console.log("run 3 ", this.count);
return {
success: this.count >= 2,
data: "task 3 " + this.count
};
},
delay: 1000,
retry: 5,
interval: 2000
})
}).then((data) => {
//处理run 2返回的数据data
console.log("result 3 ", data);
});
// 加密(增加数据时效性)示例,加密后会给参数增加一个checkcode,加密后默认20s有效时间
let salt = "abc"
let params = {
name: "lili",
age: 20
}
encrypts.encrypt(params, salt)
console.assert(encrypts.isDecryptPassed(params, salt) == true, "加密验证失败")
setTimeout(() => {
// 超过20秒后验证失败
console.assert(encrypts.isDecryptPassed(params, salt) == false, "加密验证超时后失败")
}, 21000)
//时间格式化
console.log(date.format(new Date("2022-10-14T02:34:43.000Z")));
//时间加减日月年
console.assert(date.offset(new Date("2022-10-14T02:34:43.000Z"), 20, 2, 1).toISOString() == "2024-01-03T02:34:43.000Z", "时间加减日月年");
//保留小数
console.assert(number.carry(10.5555, 2) == 10.56, "保留小数错误", number.carry(10.5555, 2));
console.assert(number.carry(10.5555, 2, Math.floor) == 10.55, "保留小数错误", number.carry(10.5555, 2, Math.floor));
//数值使用英文进位,比如:1000 ==》 1k
console.assert(number.scientific(20.21) == '20', "数值使用英文进位1");
console.assert(number.scientific(1000) == '1K', "数值使用英文进位2");
console.assert(number.scientific(561235.1566) == '561K', "数值使用英文进位3");
console.assert(number.scientific(5946151.5555, 2, Math.floor) == '5.94M', "数值使用英文进位4");