Javascript Promise与jQuery Deferred

吡咯

Javascript Promise与jQuery Deferred Objects的优缺点是什么?

例如,它们每个都有什么问题(如果有)?

一个堆栈溢出成员表示:

“……真正的承诺是真实的,而虚假的承诺是虚假的。”

他是什么意思?

jfriend00

没有“真正的承诺”或“假的承诺”之类的东西。有一些遵循当前标准的承诺实现,有一些没有遵循当前标准的承诺实现承诺没有“内在”或“虚假”的内在属性。它们是实现标准行为的Javascript的一部分。

严格遵循标准的任何承诺实现都应该可以使用,并且应该可以与其他标准承诺实现互操作。大多数人会认为互操作性和遵守公认的标准是有用的特性。

现在,jQuery Promise不遵循Promise标准,这是某些人对jQuery Promise不好的评价。他们显然正在努力使它们成为jQuery未来版本的标准,但目前它们在许多方面都偏离了标准。这导致的问题是,使用jQuery Promise时与使用标准Promise时,您必须编写不同的代码。因此,jQuery Promise代码看起来与ES6 Promise代码不同。

jQuery Promises中的问题

有关当前jQuery Promise问题的列表,请参见此参考两个主要的有一个与被拒绝的承诺错误处理问题在执行顺序的不一致.then()回调这会导致不可预料的或不一致的代码执行。所有.then()处理程序都应该异步执行(在JS当前线程展开之后)。jQuery Promise并不总是这样做,它可能会在某些类型的代码中引起问题。

浏览器中本机承诺的状态

原生承诺在浏览器中是一个新事物,因此您还不能仅仅依靠所有可能访问您网站的浏览器都必须内置原生承诺的事实。原生承诺内置于从Safari 7.1开始的浏览器中,Firefox 29,Chrome 32,Edge,Android 4.4.4,IOS 8.4,并且IE中尚不可用(截至2015年9月)。因此,您仍然需要一个相当新的浏览器才能获得本机Promise支持。因此,有许多优秀的Promise库可以提供polyfill或完全替代品,从而使您的代码能够在任何浏览器中使用Promise,而与本机Promise却毫不妥协。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Javascript

如何将jQuery Deferred对象转换为ES6 Promise

来自分类Javascript

如何判断对象是否为jQuery Promise / Deferred?

来自分类Javascript

JavaScript中的Deferred,Promise和Future之间有什么区别?

来自分类Dev

jQuery Promise执行顺序与JavaScript Promise不同

来自分类Dev

ECMAScript Promise.all方法可与jQuery.Deferred一起使用。为什么?

来自分类Dev

jQuery.when()对Deferred和/或Promise数组的进度

来自分类Dev

将多个jQuery Deferred对象合并为一个新的Deferred对象

来自分类Dev

jQuery Deferred链失败的继续

来自分类Dev

jQuery Deferred-捕获与失败

来自分类Dev

jQuery.Deferred异常:$(...)。datepicker不是函数

来自分类Dev

jQuery Deferred的JavaScript承诺仅在第一时间解决

来自分类Dev

当我将现有代码包装到Deferred中时,whenAllDone Promise / deferred javascript helper中的参数不起作用

来自分类Dev

学习Javascript / Jquery promise&deferred,多次使用时出现$。

来自分类Dev

$ .Deferred:如何检测何时执行了每个promise

来自分类Dev

返回JQuery.Deferred解析后

来自分类Dev

Js Deferred / Promise / Future与Scala等功能语言相比

来自分类Dev

Google Geocoder和jQuery Deferred

来自分类Dev

当任何jQuery Deferred失败时从for循环退出

来自分类Dev

jQuery Ajax使用Deferred对象

来自分类Dev

如何创建扩展$ .Deferred的jQuery插件?

来自分类Dev

jQuery Deferred /变量立即完成

来自分类Dev

JQuery 1.11.1 Deferred然后-带参数的多个

来自分类Dev

jQuery $ .Deferred不传递参数

来自分类Dev

JavaScript / jQuery Promise链接

来自分类Dev

jQuery Deferred的此递归Promise函数有什么问题

来自分类Dev

jQuery Deferred尽早解决

来自分类Dev

jQuery Deferred无法与getJSON调用异步执行

来自分类Dev

jQuery Deferred / Promise无法按预期工作

来自分类Dev

如何为 Ajax 调用设置 Jquery Deferred

Related 相关文章

  1. 1

    如何将jQuery Deferred对象转换为ES6 Promise

  2. 2

    如何判断对象是否为jQuery Promise / Deferred?

  3. 3

    JavaScript中的Deferred,Promise和Future之间有什么区别?

  4. 4

    jQuery Promise执行顺序与JavaScript Promise不同

  5. 5

    ECMAScript Promise.all方法可与jQuery.Deferred一起使用。为什么?

  6. 6

    jQuery.when()对Deferred和/或Promise数组的进度

  7. 7

    将多个jQuery Deferred对象合并为一个新的Deferred对象

  8. 8

    jQuery Deferred链失败的继续

  9. 9

    jQuery Deferred-捕获与失败

  10. 10

    jQuery.Deferred异常:$(...)。datepicker不是函数

  11. 11

    jQuery Deferred的JavaScript承诺仅在第一时间解决

  12. 12

    当我将现有代码包装到Deferred中时,whenAllDone Promise / deferred javascript helper中的参数不起作用

  13. 13

    学习Javascript / Jquery promise&deferred,多次使用时出现$。

  14. 14

    $ .Deferred:如何检测何时执行了每个promise

  15. 15

    返回JQuery.Deferred解析后

  16. 16

    Js Deferred / Promise / Future与Scala等功能语言相比

  17. 17

    Google Geocoder和jQuery Deferred

  18. 18

    当任何jQuery Deferred失败时从for循环退出

  19. 19

    jQuery Ajax使用Deferred对象

  20. 20

    如何创建扩展$ .Deferred的jQuery插件?

  21. 21

    jQuery Deferred /变量立即完成

  22. 22

    JQuery 1.11.1 Deferred然后-带参数的多个

  23. 23

    jQuery $ .Deferred不传递参数

  24. 24

    JavaScript / jQuery Promise链接

  25. 25

    jQuery Deferred的此递归Promise函数有什么问题

  26. 26

    jQuery Deferred尽早解决

  27. 27

    jQuery Deferred无法与getJSON调用异步执行

  28. 28

    jQuery Deferred / Promise无法按预期工作

  29. 29

    如何为 Ajax 调用设置 Jquery Deferred

热门标签

归档