假设你有下面的一段代码:您是否需要使用带有单个延迟对象的jQuery.when?
function someProcess() {
var deferred = $.Deferred();
apiCall(function (recvData) {
deferred.resolveWith(null, [recvData]);
});
return deferred.promise();
}
function mainFunction() {
$.when(someProcess())
.then(someOtherProcess);
}
在这个例子中,我只需要等待一个推迟到解决。在这种情况下,就是写的第二个功能如上对这样写的区别吧(如果有的话):
function mainFunction() {
someProcess()
.then(someOtherProcess);
}
我的意思是,因为它清楚地表明,我们”我喜欢写它的第一种方式重新使用jQuery延迟对象,但我很好奇,在这种情况下是否有必要。
编辑:我在then()调用中修复了一个错字。感谢您的支持。
编辑:感谢您的答案nrabinowitz。我认为你已经确定了我不确定使用when()和使用原始jQuery延迟对象实例的观点。我再次修复我的代码以返回一个承诺,而不是整个延期对象。这就是我现在在我的实际代码中做的,只是忘了在这里添加它。
'someOtherProcess()'应该是'someOtherProcess'。在第一种情况下,您立即调用该函数。 –
@RobW我认为他应该立即调用它,因为'$ .when'需要函数返回的延迟对象,而不是函数。 –
@KevinB'someOtherProcess()'在'then'里面,而不是'when'。 –