« 云飘 | 首页 | cecila »

Hyacinthus, Chu

留言(1 条)

jQuery的deferred对象详解 留言:


引用自由过度的发言:


dtd.promise()的目的,就是保证目前的执行状态----也就是"未完成"----不变,从而确保只有操作完成后,才会触发回调函数。

这个还是删掉吧,文章作者根本没理解什么是promise只是从字面上去推定这个函数的意义



其实我们可以看到,var d = $.Deferred(),与 var p = d.promise(); 这两者的区别主要就在于, d 包含了 resolve, resolveWith, reject 与 rejectWith 这四个方法。而这四个方法就是用来触发 done, fail, always 这些个回调函数的。
之所以要返回 d.promise(): 一是因为 CommonJS promise/A 本来就应当是这样子的;二也是用来避免返回的对象能够主动地调用到resolve与reject这些关键性的方法。