Я пытаюсь следовать некоторым урокам javascript, где есть реализация Deferred. Это ядро кода
getData = function (options) {
return $.Deferred(function (def) {
var results = options.results;
getFunction({
success: function (smt) {
results("test");
def.resolve(results);
debugger;
},
error: function (response) {
def.reject();
}
});
}).promise();
},
Теперь вопрос в том, когда я вызываю эту функцию извне, например:
$.when(somthing.getData(options)).
done(alert(options.results));
debugger;
Бывает, что СНАЧАЛА доберитесь до отладчика вне вызова $.when, а ЗАТЕМ коснитесь внутренней функции обратного вызова SUCCESS внутри объекта Deferred...
Я не понимаю... разве обещание не должно выполняться только при достижении def.resolve(results)?...