0
Я думаю, что добавил слой сложности. Вот что я получил:Как использовать обещания jQuery, чтобы функции не были вложены
;(function($, window, undefined) {
function download() {
var local = {};
local.data = {};
local.data.method = 'getMyData';
local.dataType = 'json';
local.Promise = $.ajax('myComponent.cfc', local);
local.Promise.done(PromiseDone);
local.Promise.fail(PromiseFail);
}
function PromiseDone(result) {};
function PromiseFail(myEvent) {};
})(jQuery, window);
То, что я хотел бы сделать что-то вроде этого:
;(function($, window, undefined) {
var Variables = {};
Variables.Promise = $.Deferred();
function download() {
var local = {};
local.data = {};
local.data.method = 'getMyData';
local.dataType = 'json';
Variables.Promise = $.ajax('myComponent.cfc', local);
}
Variables.Promise.done(function(result) {
});
Variables.Promise.fail(function(myEvent) {
});
})(jQuery, window);
Моя цель состоит в том, чтобы сгладить JavaScript, чтобы мои функции не являются вложенными.
Вопрос: Будет ли моя идея работать, или deferred
требует resolve
для рассмотрения done
?
OMG. return $ .ajax(). Brilliant! –
Есть ли способ сказать, что без привязки .fail к .done? –
@Phillip - немного изменил ответ! – adeneo