jQuery的延期回调执行顺序

前端之家收集整理的这篇文章主要介绍了jQuery的延期回调执行顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
jQuery的延迟/承诺有两个结果:已解决并被拒绝.您可以将回调附加到与每个状态相关联的Deferred.完成附件的条件(与解决相关联),失败(与拒绝关联),并始终(与两个状态相关联).当状态从未决状态移动到非挂起时,我没有成功地尝试确定回调的顺序;即对于完成和永远(或者失败并总是),回调对于每个被解决和被拒绝的状态执行的顺序是什么?

解决方法

@马尔科姆的回答确实是正确的.该文档在许多地方都提到,其中包括

> deferred.done()deferred.fail() – “回调按照添加的顺序执行”.
> deferred.always() – “当Deferred被解决或拒绝时,回调按照添加的顺序执行”
> jQuery.ajax() – “Promise callbacks – .done(),.fail(),.always()和.then() – 按照注册顺序被调用.

实施细节

看看Deferred module,它使用实现FIFO“回调列表”的Callbacks module.

以下是将回调添加到Deferred对象的调用堆栈:

> always()

> done()/fail()

> Callbacks.add()

> list.push() – 回调函数pushed到列表的末尾.

这里是用于解析/拒绝Deferred对象的调用堆栈:

> resolve()/reject()

> resolveWith()/rejectWith()

> Callbacks.fireWith()

> Callbacks.fire() – 列表中的回调使用a for loop以FIFO顺序执行.

猜你在找的jQuery相关文章