1.5.3 • Published 6 years ago
xpromisequeue v1.5.3
简介
这是一个Promise的执行队列模块,里面的每一个Promise都是按顺序执行的,您也可以指定一定的优先级来决定队列的执行顺序。
使用场景
- 需要按顺序来运行某一组任务,比如:当A处理后才能执行B,B处理后才能执行C...
- 示例场景:当一个页面的交互很复杂时,某些业务逻辑可能会不定时地向页面发出多个非阻塞式的弹窗消息,为避免多个弹窗同时展现在页面上,可以采用此模块来顺序执行弹窗逻辑,只有当前面的弹窗处理完毕后,才会处理后面的弹窗逻辑。
如何使用
- 可自行打包
- 参见./Build/中的文件
- npm:https://www.npmjs.com/package/xpromisequeue
流程
API
公开的模块内容为export default { QItem, Queue }
,其中QItem
是队列中的执行项,Queue
是队列。
QItem
:
Queue
:
简单使用
//先注册队列后,再统一执行
new Queue().reg(new QItem(function(){
setTimeout(()=>{
console.log('test 1...');
this.resolve();
},2000);
})).reg(new QItem(function(){
setTimeout(()=>{
console.log('test 2...');
this.resolve();
},3000);
})).run();
//test 1...
//test 2...
//先执行,再动态注册
new Queue().run().reg(new QItem(function(){
setTimeout(()=>{
console.log('test 1...');
this.resolve();
},2000);
})).reg(new QItem(function(){
setTimeout(()=>{
console.log('test 2...');
this.resolve();
},3000);
}));
//test 1...
//test 2...
Demo预览图
具体示例代码请参见:demo/index.html