1.1.7 • Published 8 years ago

shy-Do v1.1.7

Weekly downloads
213
License
-
Repository
-
Last release
8 years ago

#install

npm install shy-Do

###支持UMD加载

#description

本质是任务队列,将一个个任务放入一个数组,按顺序执行,碰到wait类型的暂停执行,等待wait完成(ps:出现错误也被视为完成)后再从上次的位置继续执行,全部执行完成后清空任务队列

#API const Do = require('shy-Do') //静态属性 Do .version //版本号 //静态方法 .isDo(obj) //判定某个值是不是Do对象 .Symbol(obj) //返回一个对象 new .scope(doFunc,catchFunc) //安全地执行操作 new

let a = new Do()
a
//实例方法
.wait(function(rl,rj,val){})	//将一个延迟事件加入任务队列
.done(function(val){})			//将一个事件加入任务队列
.catch(function(err){})			//捕捉错误,和promise中的catch行为一致
.then(f1,f2)					//语法糖,返回一个新的Do对象
.result(f1,f2)					//f1|f2各自会得到Do对象的value|error,但他们不会改变Do对象的value|error
.state() 						//返回状态{state,value,error} new

//实例属性
.name							//'Do'
.constructor					//Do对象的构造函数,用来判断是不是Do对象

#重要版本更新

1.1.0 删除了.depend实例方法,查看属性移至实例方法.state 1.0.3 修复then,万物从new Do()开始 1.0.0 最终wait的参数顺序由(val,rl,rj)改为(rl,rj,val),选择和Promise保持一致,因为我在实战中发现.wait多写个reject也没什么的,倒是.result中写个null反而意味不明,顺带可以推广Promise何乐不为

0.2.1 修复depend

0.1.8 wait的参数顺序由(rl,rj,val)改为(val,rl,rj),不与Promise的参数顺序保持一致

0.1.4 result如果抛出一个错误,现在不会影响原来Do的结果

#已知问题 某些情况下会发生回调溢出,如下:

var x = Do.wait(function(rl,rj){
	setTimeout(function(){rl(7)},2000)
})
for(var i=0;i<10000;i++){
	x = x.then(fucntion(i){
		return i+1
	})
}
//x的值直到最后一个then执行都不会被释放,导致了溢出,这种情况改用done
x.then(funciton(i){
	console.log(7777)
})

这个时候我选择抛(go)出(die)异常

1.1.7

8 years ago

1.1.6

8 years ago

1.1.5

8 years ago

1.1.4

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.9

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago