假设您有以下代码:
function someProcess() {
var deferred = $.Deferred();
apiCall(function (recvData) {
deferred.resolveWith(null, [recvData]);
});
return deferred.promise();
}
function mainFunction() {
$.when(someProcess())
.then(someOtherProcess);
}
在这个例子中,我只需要等待一个 deferred 被解决。在这种情况下,像上面那样编写第二个函数与像这样编写它有什么区别(如果有的话):
function mainFunction() {
someProcess()
.then(someOtherProcess);
}
我的意思是,我喜欢以第一种方式编写它,因为它清楚地表明我们正在使用 jQuery 延迟对象,但我很好奇在这种情况下是否有必要。
编辑:我修复了 then() 调用中的错字。谢谢你抓住那个。
编辑:感谢nrabinowitz的回答。我认为您已经明确了我在使用 when() 与使用原始 jQuery 延迟对象实例方面不确定的要点。我再次修复了我的代码以返回一个承诺而不是整个延迟对象。这就是我现在在实际代码中的做法,只是忘记在此处添加。