after-async-data
在获得某结果前进行排队,等获取结果后再运行。
安装
npm i -S after-async-data
如何使用
;const waitQueue = ;waitQueue;waitQueue;waitQueue;
比如在进入应用后直接调用了多个接口,但后来需在之前加上 getToken 方法
;const waitQueue = ; // 伪·业务代码const getToken = ;var ;const getUserInfo = ;const getIndexData = ; // 先注册前置函数waitQueue;// 包装原方法,把原逻辑置于获取结果之后const _ajax = ajax;var { waitQueue;} // 再调用业务代码时,会等到获取 token 后才运行;;
用于缓存一点异步数据
var ;waitQueue;const _getLargeData = getLargeData;var { waitQueue;}// 业务代码运行后,data 会存入插件缓存,下次再调用会先取缓存// 使用 waitQueue.remove('cache large data', false) 可清掉缓存;
结合上述两者,可处理很多等待数据的场景
比如在 app.js 获取权限,在 index.js 获取完数据后就要用,
但这两个异步谁先谁后其实并不确定,又因为跨页面而无法 Promise.all,
则可通过本 after-async-data
插件来进行等待。
再比如,在某个节点前只接收操作但不反馈,等满足条件后再筛选操作再运行。
当然,本案例实现得可能并不甚妙,欢迎 issuse 和 pull request 交流。