var myFunc = function() {
var dfd = $.Deferred();
//Do some code...
//That might have ajax calls
dfd.resolve(); // Resovle deferred
return dfd.promise(); //Return the promise
}
这会产生错误.done不是函数
myFunc.done(function(){
console.log("ALL DONE...");
});
但是,如果我第一次这样做:
var ref = myFunc();
ref.done(function(){
console.log("ALL DONE...");
});
现在一切正常,我不明白为什么需要两个函数之间的引用?
答案 0 :(得分:3)
这是试图在done
对象本身上调用myFunc
函数:
myFunc.done(function(){
console.log("ALL DONE...");
});
你需要实际调用函数来掌握这个承诺:
myFunc().done(function(){
console.log("ALL DONE...");
});
将其分配给变量时已完成的操作:
var ref = myFunc();
这一行是:
var ref = myFunc;
你会得到同样的错误。
答案 1 :(得分:2)
myFunc().done(function(){
console.log("ALL DONE...");
});
您必须调用myFunc
。