Deferredの実装があるjavascriptのレッスンに従おうとしています。これがコードのコアです
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呼び出しの外側のデバッガーに到達し、次にDeferredオブジェクト内のコールバックSUCCESS関数内のデバッガーにタッチします。
わかりません..def.resolve(results)に達したときだけ約束をするべきではありませんか?...