async-fn-queue
一个异步函数队列化执行库
Intro
这个库可以将多个异步操作在队列中执行,并且能动态追加异步操作,满足在特殊场景下串行化异步操作需求
Install
npm install async-fn-queue --save
Usage
下面是一个数据同步的示例,在同步本地和服务器数据时,我们通常希望串行化请求,于是我们可以使用异步队列来进行操作
/*** 同步数据*/{// 使用队列名获取队列(不存在则自动创建)并执行该队列queuenextasync {// 获取本地数据let localData = JSON// push 到服务端await http// 拉取服务端新数据let newData = await http// 合并到本地localData = localDatalocalStorage}}// 获取同步按钮let btn = document// 无论用户连续点击或直接调用 sync 函数多少次,接口都只会串行请求btn...
Api
// queue.get: 创建或获取一个队列var q = queue// 获取默认队列var q = queue// queue 本身就是默认队列queue === queue // true// 任何队列都可以获取和创建新的队列var newQueue = q// queue.push: 将异步操作函数添加到队列(入队)qq// 同时也支持同步操作q// queue.start: 开始执行队列中的异步操作(将依次执行操作 F1、F2、F3)qstart// 调用 start 后追加的新异步操作需要显性调用 start 才会执行qstart// queue.next: 添加并执行下一个异步操作,等同于 q.push(fn).start()qnextasync {// 异步操作 F5(将在 F1、F2、F3、F4 执行完后开始执行 F5)}// queue.pause: 暂停执行队列中的异步操作q// queue.stop: 停止执行并清除队列中的异步操作q// 支持链式调用qstartnextfn// 使用默认队列queuestartnextfn
如果对你有用,欢迎 star ^_^