Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rubylouvre/mmdeferred
一个完全遵循Promise/A+规范的Deferred 库
https://github.com/rubylouvre/mmdeferred
Last synced: about 2 months ago
JSON representation
一个完全遵循Promise/A+规范的Deferred 库
- Host: GitHub
- URL: https://github.com/rubylouvre/mmdeferred
- Owner: RubyLouvre
- Created: 2013-07-22T00:34:58.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2016-08-05T10:00:14.000Z (over 8 years ago)
- Last Synced: 2024-04-25T12:02:02.369Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 141 KB
- Stars: 46
- Watchers: 4
- Forks: 18
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
mmDeferred
==========一个完全遵循Promise/A+规范的Deferred 库
api
- Deferred(mixin?): 可传入一个可选的对象或函数,修改整条Deferred链的所有Promise对象,它将返回一个Deferred对象。
相当于jQuery的promise(obj),将一个普通对象转换为Promise 对象的功能。
- state(), 位于Deferred对象上, 将得到Deferred对象的状态,"fulfilled", "rejected", "pedding", 一开始是"pedding"。
当对象变成"fulfilled"或 "rejected"状态时,无法再执行resolve, reject方法。resolve会将对象改变成"fulfilled",但如何执行时抛错,会转为"rejected"状态;
reject会将对象改变成"rejected";notify与ensure不会改变状态;
- promise: 位于Deferred对象上, 一个对象属性,拥有then, otherwise, ensure方法,是负责收集回调的
(相当而言,Deferred对象则有resolve, reject, notify方法,是负责触发回调的)
- then(resolvefn,rejectfn,notifyfn, ensurefn),位于Promise对象上,依次用来重写默认的"resolve,reject,notify, ensur"回调
- ensure: 位于Promise对象上,重写默认的ensure回调——该回调不接受参数,是总会触发的回调
- otherwise 位于Promise对象上,重写默认的rejected回调——出错时触发的回调
- notify: 位于Deferred对象上,用于触发notify回调——允许多次触发的回调
- resolve: 位于Deferred对象上,用于触发fulfill回调——正常触发的回调
- reject: 位于Deferred对象上,用于触发rejected回调——出错时触发的回调
- all: Deferred的静态方法,要求传入多个Promise对象,当它们都正常触发时,就执行它的resolve回调。相当于jQuery的when方法,但all更标准,是社区公认的函数。
- any: Deferred的静态方法,要求传入多个Promise对象,最先正常触发的Promise对象,将执行它的resolve回调
example