一个简单的堆栈,逻辑很清晰
Posted 小结巴巴吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的堆栈,逻辑很清晰相关的知识,希望对你有一定的参考价值。
function Stack(type) { function QueueConst() {} QueueConst.execute_ing=[], QueueConst.execute_no=[], QueueConst.state=1, QueueConst.type = type?type:false QueueConst.prototype.stop=function () {//暂停 QueueConst.state=2 } QueueConst.prototype.reset=function () { //恢复 QueueConst.state=3 QueueConst.prototype.execute(); } QueueConst.prototype.execute=function () { //执行队列 if(QueueConst.state==2) return; var currentItem = null if(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 = 1 return }; 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=3 QueueConst.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 我的博客,来看吧!
如果有错误,请留言修改下 哦!
以上是关于一个简单的堆栈,逻辑很清晰的主要内容,如果未能解决你的问题,请参考以下文章
清晰架构(Clean Architecture)的Go微服务: 事物管理
Android特效专辑——点击水波纹效果实现,逻辑清晰实现简单
一个基于 不锈钢的简单学生管理系统,项目概述全面,代码注释详细,逻辑结构清晰,对于初学 不锈钢的同学非常具有参考与学习价值哟 !