У меня есть пример кода, который использует jQuery отложенным. То, что я не могу понять, хотя функция brushTeeth возвращает обещание, которое отвергается, почему CollectionResults, который откладывается на другой, всегда разрешается.jQuery Отложенное не отклонено
Некоторые отложенные чтения jQuery говорят, что если функции, переданные в $ .when не являются обещаниями, они будут разрешены сразу, но brushTeeth фактически возвращает обещание.
Уточняет, что я делаю неправильно здесь?
ShowerModule = (function($) {
function init(){
var result = $.Deferred();
var collectionResults = $.when(brushTeeth);
collectionResults.done(function(){
console.log("done");
})
collectionResults.fail(function(){
console.log("reject");
})
}
function brushTeeth() {
var result = $.Deferred();
result.reject('["bah"]');
return result.promise();
}
return {
init : init
}
}(jQuery));
ShowerModule.init();
Да, и если это не упрощение чего-то более обширного, тогда '.when()' не нужно. 'brushTeeth(). done (function() {...}). fail (function() {...});' даст тот же эффект. Используйте '.when()' для ответа на комбинированное разрешение нескольких обещаний. –
Да, это упрощенный пример. Я использую .when() в случае 2 или более обещаний, которые необходимо решить :) – Dhana