12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- exports.default = class {
- constructor(name) {
- this.queue = {};
- this.timer = -1;
- }
- action(){
- if ("{}" !== JSON.stringify(this.queue)) {
- for (let i in this.queue) this.queue[i][0]();
- this.timer = -1, this.begin();
- } else {
- this.stop();
- }
- }
- add(e){
- var t = "" + new Date().getTime() + Math.ceil(1000 * Math.random());
- return this.queue["" + t] = [e], -1 === this.timer && this.start(), t;
- }
- remove(e) {
- delete this.queue["" + e], "{}" === JSON.stringify(this.queue) && (this.timer = -1);
- }
- del() {
- this.queue = {}, "{}" === JSON.stringify(this.queue) && (this.timer = -1);
- }
- stop() {
- clearTimeout(this.timer), this.timer = -1;
- }
- start() {
- this.timer > -1 || this.action();
- }
- begin() {
- var that = this;
- this.timer = setTimeout(function () {
- that.action();
- }, 1000);
- }
- }
|