Skip to content

一个完全遵循Promise/A+规范的Deferred 库

Notifications You must be signed in to change notification settings

evywang/mmDeferred

 
 

Repository files navigation

mmDeferred

一个完全遵循Promise/A+规范的Deferred 库

api

  1. Deferred(mixin?): 可传入一个可选的对象或函数,修改整条Deferred链的所有Promise对象,它将返回一个Deferred对象。 相当于jQuery的promise(obj),将一个普通对象转换为Promise 对象的功能。
  2. state(), 位于Deferred对象上, 将得到Deferred对象的状态,"fulfilled", "rejected", "pedding", 一开始是"pedding"。 当对象变成"fulfilled"或 "rejected"状态时,无法再执行resolve, reject方法。resolve会将对象改变成"fulfilled",但如何执行时抛错,会转为"rejected"状态; reject会将对象改变成"rejected";notify与ensure不会改变状态;
  3. promise: 位于Deferred对象上, 一个对象属性,拥有then, otherwise, ensure方法,是负责收集回调的
    (相当而言,Deferred对象则有resolve, reject, notify方法,是负责触发回调的)
  4. then(resolvefn,rejectfn,notifyfn, ensurefn),位于Promise对象上,依次用来重写默认的"resolve,reject,notify, ensur"回调
  5. ensure: 位于Promise对象上,重写默认的ensure回调——该回调不接受参数,是总会触发的回调
  6. otherwise 位于Promise对象上,重写默认的rejected回调——出错时触发的回调
  7. notify: 位于Deferred对象上,用于触发notify回调——允许多次触发的回调
  8. resolve: 位于Deferred对象上,用于触发fulfill回调——正常触发的回调
  9. reject: 位于Deferred对象上,用于触发rejected回调——出错时触发的回调
  10. all: Deferred的静态方法,要求传入多个Promise对象,当它们都正常触发时,就执行它的resolve回调。相当于jQuery的when方法,但all更标准,是社区公认的函数。
  11. <li>any: Deferred的静态方法,要求传入多个Promise对象,最先正常触发的Promise对象,将执行它的resolve回调</li>
    

example

About

一个完全遵循Promise/A+规范的Deferred 库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%