rock-queue
rock-queue是一个任务队列管理框架,可以将复杂细碎的业务流程,拆分成多个任务模块,通过组合不同的任务模块,完成复杂的操作。
Queue
Queue的config参数
- overTime 设置queue的超时时间,单位是毫秒,默认是10000毫秒(10秒钟)
如何使用Queue类
// 实例化Queueconst queue = // 通过push方法向队列中添加任务 // push方法接收string,number,boolean三种基本类型的参数,参数的值会作为当前任务节点的返回值传递到下一个任务节点queue // push方法接收Function类型的参数,Function类型的参数作为回调函数被调用,包含三个参数// 1.req是queue的请求参数// 2.res是queue的上一个任务的返回值,如果当前任务是queue中的第一个,则这个参数是queue的start方法的defaultRes参数值// 3.next方法用来结束当前的任务,并触发下一个任务,可以通过next方法传递一个参数作为返回值,传递到下一个任务模块// 4.error方法会结束整个队列的调用,并且抛出一个错误,可以通过catch方法捕获queue // push方法接受Task类型的对象,这种类型的参数和直接传入Function类型的参数是等价的queue // push方法接受Queue类型的对象 const queue2 = queue2 queue // 调用queue的start方法,可以触发一个队列的执行queuestartreq defaultRes
## Task Task类是所有任务的基类,Task的构造函数接受一个函数类型的构造函数,最为回调函数。
QueueTask
QueueTask继承自Task,可以将一个定义好的Queue实例转换为Task实例,可以达到Queue复用的目的。
// 实例化Queue类,作为子队列const childQueue = // 向队列中添加任务childQueue // 实例化Queue类const queue = // 向队列中添加队列任务queue // 调用queue的start方法,可以触发一个队列的执行queuestart
ConditionalTask
所有流程控制任务的基类,控制队列的执行流程,不会影响数据的传递
流程控制Task
- If
- Else
- ElseIf
- EndIf
// 实例化Queueconst queue = // 会被执行queue queue // 会被执行queue queue // 不会执行queue queue // 会被执行queue // 开始队列queuestart
Installation
npm install rock-queue