美文网首页让前端飞WEB前端程序开发
用javascript实现一个事件队列

用javascript实现一个事件队列

作者: gzgogo | 来源:发表于2019-01-05 13:02 被阅读1次

详见github,使用方法参考index.html

function EventQueue(delayTime) {
  this._delayTime = delayTime || 20;
  this._queue = [];
}

EventQueue.prototype = {
  add: function (excute, params) {
    this._queue.push({
      excute: excute,
      params: params
    });

    this.start();
  },

  start: function () {
    if (this._delayTime <= 0) {
      this.process();
    } else {
      var self = this;
      setTimeout(function () {
        self.process();
      }, self._delayTime);
    }
  },

  process: function () {
    var item = this._queue.shift();

    if (item) {
      var self = this;
      item.excute(item.params, function () {
        self.process();
      });
    }
  }
};

相关文章

  • 用javascript实现一个事件队列

    详见github,使用方法参考index.html

  • ES6 -异步编程

    javascript 是基于单线程的,如果想实现多个任务,需要任务队列来实现。 事件模型:点击按钮触发事件队列,异...

  • js笔记

    Javascript 事件循环: js解析方法时,将同步任务排队到执行栈中,异步任务排队到事件队列中。 事件队列分...

  • javascript事件队列

    首先,js是单线程的,js是通过事件队列(Event Loop)的方式来实现异步回调的。 进程代表CPU能处理的当...

  • 2019-07-15 requestAnimationFrame

    为什么需要JavaScript以前使用setTimeout和setInterval进行动画控制,由于事件队列的问题...

  • Vue框架基础

    原生js与Vue框架的区别 用原生实现双向数据绑定 用Vue实现双向数据绑定 Vue是一个javaScript框架...

  • 用JavaScript实现双向链表

    用JavaScript实现双向链表 前言 JavaScript本身是没有指针的,所以要实现链表的话没有现成的数据结...

  • cesium 实现地球自转

    我们用typescript 实现一个地球自转工具类、 ```javascript /** 地球自转 / expor...

  • 用JavaScript实现一个VUE

    vue的使用相信大家都很熟练了,使用起来简单。但是大部分人不知道其内部的原理是怎么样的,今天我们就来一起实现一个简...

  • 用javascript实现栈

    原帖:http://blog.csdn.net/q1056843325/article/details/52964...

网友评论

    本文标题:用javascript实现一个事件队列

    本文链接:https://www.haomeiwen.com/subject/lfyrrqtx.html