function Stack(type) {function QueueConst() {}QueueConst.execute_ing=[],QueueConst.execute_no=[],QueueConst.state=1,QueueConst.type = type?type:falseQueueConst.prototype.stop=function () {//暂停QueueConst.state=2}QueueConst.prototype.reset=function () { //恢复QueueConst.state=3QueueConst.prototype.execute();}QueueConst.prototype.execute=function () { //执行队列if(QueueConst.state==2) return;var currentItem = nullif(QueueConst.execute_ing.length>0){currentItem = QueueConst.execute_ing.shift()if(QueueConst.type){currentItem(QueueConst.prototype.reset)QueueConst.prototype.stop()}else {currentItem()QueueConst.prototype.execute()}//执行当前}else {if(QueueConst.execute_no.length<1) {//完成队列里面的任务;QueueConst.state = 1return};QueueConst.execute_ing = QueueConst.execute_no.reverse()QueueConst.execute_no=[]QueueConst.prototype.execute()}}QueueConst.prototype.add=function (item) {//添加任务QueueConst.execute_no.push(item)if(QueueConst.state==1) QueueConst.state=3QueueConst.prototype.execute();}return new QueueConst()
}var que = Stack(true);que.add(function (next) {var index = 1;var loop = setInterval(function () {console.log(index++)},1000)setTimeout(function () {next();console.log('one')clearInterval(loop)},5000)})que.add(function (next) {var index = 1;var loop = setInterval(function () {console.log(index++)},1000)setTimeout(function () {next();console.log('two')clearInterval(loop)},3000)})que.add(function (next) {var index = 1;var loop = setInterval(function () {console.log(index++)},1000)setTimeout(function () {next();console.log('three')clearInterval(loop)},3000)})

  

http://www.cnblogs.com/jiebba/p/6575214.html

http://www.cnblogs.com/jiebba    我的博客,来看吧!

如果有错误,请留言修改下 哦!

一个简单的堆栈,逻辑很清晰相关推荐

  1. python与数学关系大吗_通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别...

    原标题:通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别 前言 我想很多人在小时候都玩过这么一个游戏,我记得以前的摩托罗拉的手机里面就有,那就是汉诺塔! 看到图片是不是想起来玩过这个游戏呢? ...

  2. 编程一个最简单游戏_通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别...

    我想很多人在小时候都玩过这么一个游戏,我记得以前的摩托罗拉的手机里面就有,那就是汉诺塔! 看到图片是不是想起来玩过这个游戏呢? 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天 ...

  3. java实现堆栈_Java实现一个简单的堆栈

    堆栈(Stack)是一种常见的数据结构,符合后进先出(First In Last Out)原则,通常用于实现对象存放顺序的逆序.栈的基本操作有push(添加到堆栈),pop(从堆栈删除),peek(检 ...

  4. 实现一个简单的栅格系统

    实现一个简单的栅格系统 关于栅格系统 相信大家都用过 Bootstrap (神马!你没用过?这么流行你还不快去试试),栅格系统就是 Bootstrap 的核心,现在许多 UI 库中也增加了对栅格系统的 ...

  5. 开发一个看起来不是很低端的简单公文流转系统(一)

    作为一个办公室工作人员,面对每天海量的公文处理以及停留在手工操作阶段的信息化系统应用,工作效率自不用提,还浪费了大量的时间,为此,想要开发一个简单易用,编程容易,还要看起来不是很低端的公文流转系统.好 ...

  6. wps流程图导出不清楚_一份清晰的“流程图”,无需专业软件,一个简单Word轻松搞定...

    制作流程图前我们需要三个准备,但当我们所有准备完成后,就是一定要亲自去实操,否则只能是空想,在实际操作时却不知道该从何入手,就好比现在自己需要画一个简单的流程图,应该在哪里操作呢? 一般情况分为两种, ...

  7. Vulkan是什么?和我一起完成一个简单的Vulkan应用程序

    在本章,你将学到: Vulkan以及它背后的基本原理: 如何创建一个最简单的Vulkan应用程序: 在本书其余部分将使用到的术语和概念. 本章将介绍并解释Vulkan是什么.我们会介绍API背后的基本 ...

  8. 写一个简单的操作系统

    摘 要 如果一定要找出OS最重要的核心,那就是调度器,调度器本身即可以看作一个简单的操作系统,允许以周期性或单次方式来调用任务.从底层的角度看,调度器可以看作是一个由许多不同任务共享的定时器中断服务程 ...

  9. PHP实现MVC开发: 一个简单的MVC(转)

    原地址:http://blog.163.com/zbstrive_work@126/blog/static/165378687201182104617655/ 至于什么MVC结构,其实就是三个Mode ...

  10. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

最新文章

  1. 【ACM】杭电OJ 2028
  2. 【每日一算法】两数相加
  3. Win32 控件篇(3)
  4. php随机数字不重复,php生成N个不重复的随机数
  5. hi3516配置wifi_HISI 3516A移植mt7601u的wifi驱动
  6. BZOJ 3505 [Cqoi2014]数三角形(组合数学)
  7. Python2和Python3的兼容性写法
  8. 「深圳云栖大会」大数据时代以及人工智能推动下的阿里云异构计算
  9. springmvc框架下的国内地区级联效果(共享一下给学习的小伙伴)
  10. 使用vscode连接阿里云服务器报错: ssh: Could not resolve hostname Name or service not known
  11. java编译sql存过_SQL SERVER 临时表导致存储过程重编译(recompile)的一些探讨
  12. 【免费下载】2021年7月热门报告盘点(附热门报告列表及下载链接)
  13. C#中lock关键字的用法
  14. win7 IE8无法升级IE11
  15. [FFMPEG播放器]结合FFMPEG使用SDL2渲染ASS字幕
  16. 室内 Beacon定位室外 GPS 定位 大型场馆融合定位方案
  17. 树的前序、中序、后序遍历 | Tree Walk | C/C++实现
  18. 那些学校考846计算机,长安大学2021年考研846计算机类学科基础参考书目
  19. java.net.SocketException: Too many open files解决方法
  20. Golang的高并发

热门文章

  1. cad没有命令输入框_cad中怎么输入文字?cad怎么输入文字?
  2. Javascript基础知识笔记四
  3. XML解析模型(完整版)
  4. Golang sha256 加密,PHP hash_hmac(‘sha256‘, $string, $key)加密,Js CryptoJS.HmacSHA256(string, key) 加密
  5. golang 图片处理,剪切,base64数据转换,文件存储
  6. html把毫秒转换成年月日,JS实现获取毫秒值及转换成年月日时分秒的方法
  7. 如何编译并修改FBReader的package(安卓平台)
  8. 全网首发:LINUX(UOS)对GTK/X11的窗口的差异
  9. 服务器一定要改默认端口
  10. You must install signalwire-client-c to build mod_signalwire