假設你有下面的一段代碼:您是否需要使用帶有單個延遲對象的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'。 –