gpt4 book ai didi

javascript - 为什么我的 deferred() 函数无法工作,除非我通过另一个变量引用它?

转载 作者:行者123 更新时间:2023-11-28 13:18:16 25 4
gpt4 key购买 nike

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...");
});

现在一切正常,我不明白为什么需要两个函数之间的引用?

最佳答案

这是尝试在 myFunc 对象本身上调用 done 函数:

myFunc.done(function(){
console.log("ALL DONE...");
});

您需要实际调用该函数才能实现 promise :

myFunc().done(function(){
console.log("ALL DONE...");
});

当您将其分配给变量时,您已经完成了:

var ref = myFunc();

如果这一行是:

var ref = myFunc;

你会得到同样的错误。

关于javascript - 为什么我的 deferred() 函数无法工作,除非我通过另一个变量引用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com