【发布时间】:2017-09-09 08:56:20
【问题描述】:
.fail 的简短文档说:
添加当 Deferred 对象被拒绝时要调用的处理程序。
.catch 的简短文档完全相同:
添加当 Deferred 对象被拒绝时要调用的处理程序。
来源:http://api.jquery.com/category/deferred-object/
这两种方法接受的参数似乎不同,
.catch 声明 .catch 是 .then(null, fn) 的别名
在某些情况下我应该使用.fail,而在其他情况下我应该使用.catch?
或者......如果我只有一个功能......是否遵循可互换的命令并且它们仅出于兼容性/历史原因而存在?
a) .fail(fn)
b) .catch(fn)
c) .then(null, fn)
我创建了一个 jsFiddle:
https://jsfiddle.net/sq3mh9j5/
如果有区别,请您提供一些示例,因为我是 jquery 新手,还不熟悉所有承诺条款。
.catch 的文档为什么没有引用 .fail 的文档并说明区别/相似之处?
编辑 我在 3.0 发行说明中发现 .then 的行为发生了变化。 https://blog.jquery.com/2015/07/13/jquery-3-0-and-jquery-compat-3-0-alpha-versions-released/ 尽管如此,我仍然不确定何时使用 .fail 以及何时使用 .catch。
【问题讨论】: