28

我试图了解两者之间的区别

$.when(...).then(...)

$.when(...).done(...)

在 jQuery 中。据我了解,它们都是在内部对象完成加载时执行的。但是有什么区别。示例将不胜感激。

4

1 回答 1

32

.done()只有成功回调。

.then()有成功和失败的回调。

从 jQuery 1.8 开始,该deferred.then()方法返回一个新的 Promise,它可以通过函数过滤 deferred 的状态和值,替换现在已弃用的deferred.pipe()方法。

deferred.done()方法接受一个或多个参数,所有参数都可以是单个函数或函数数组。

由于deferred.done()返回延迟对象,延迟对象的其他方法可以链接到这个,包括附加 .done()方法。当 Deferred 被解析时,doneCallbacks 将使用提供给 resolve 或 resolveWith 方法调用的参数按照它们被添加的顺序执行。

于 2013-01-10T13:39:22.333 回答