-
Notifications
You must be signed in to change notification settings - Fork 0
/
job_queue.min.js
1 lines (1 loc) · 1.45 KB
/
job_queue.min.js
1
function job_queue(){var _obj=null;var _name='';var func_first=null;var func_first_mapping=null;var func_last=null;var func_last_mapping=null;var list_func=[];var list_func_mapping=[];var run_num=0;this.init=function(obj,name){_obj=obj;_name=name};this.reg=function(func,id){if(typeof func!=='function'){return false}list_func.push(func);list_func_mapping.push($.trim(id))};this.reg_first=function(func,id){if(typeof func!=='function'){return false}func_first=func;func_first_mapping=id};this.reg_last=function(func,id){if(typeof func!=='function'){return false}func_last=func;func_last_mapping=id};this.next=function(){if(run_num>_length()){run_num=0}if(run_num===0){_obj.clearQueue(_name);_obj.queue(_name,func_first);for(var i=0;i<list_func.length;i++){_obj.queue(_name,list_func[i])}_obj.queue(_name,func_last);_obj.queue(_name,function(){run_num=0;_obj.clearQueue()})}run_num++;_obj.dequeue(_name)};this.remove=function(id){if(func_first_mapping===id){func_first=null;return true}if(func_last_mapping===id){func_last=null;return true}for(i in list_func_mapping){if(list_func_mapping[i]===id){list_func.splice(i,1)}}};this.clear=function(){run_num=0;_obj.clearQueue(_name)};this.length=function(){return _length()};function _length(){var leng=list_func.length;if(typeof func_first==='function'){leng++}if(typeof func_last==='function'){leng++}return leng}this.is_last=function(){return _obj.queue(_name).length===1&&run_num===_length()};this.number=function(){return run_num}}