所以我一直在处理一些 Jquery Ajax promises/deffers 等等...我遇到了一些我不完全理解的东西,与 Jquery Ajax 没有严格的关系。
我总是这样声明和调用函数:
function foo1() { //sets function
alert('foo1');
}
foo1(); //calls function
但似乎我看到的不同代码越多,很多人都在声明如下函数,我只是复制并粘贴了一个我看到的例子,这样我就不会错过任何东西:
var promise = $.ajax({
url: "/myServerScript"
});
promise.done(myStopAnimationFunction);
我理解上面的内容,只是一个例子。
问题是,函数赋值给变量是不是更好?优点/缺点是什么,在什么情况下使用这种方式? 这段代码中的哪一点是实际调用的函数。做
promise.done(myStopAnimationFunction);
同时调用 ajax 函数,然后调用回调,还是只调用回调?
谢谢
最佳答案
在您的示例中,您正在分配 promise
变量是什么 $.ajax
返回(这是一个 jqXHR 对象)
var promise = $.ajax({
url: "/myServerScript"
});
然后你说一旦完成,你想调用myStopAnimationFunction
.因为$.ajax
是async
默认情况下,浏览器将跳过它,只调用你的 myStopAnimationFunction
当请求完成时。
promise.done(myStopAnimationFunction);
现在,用你的 myStopAnimationFunction
;您可以随时执行以下操作:
promise.done(function(){
$('.loader').hide();
});
但是如果你有你会经常使用的代码,把它放在一个函数中这样你就不需要重复自己(参见 DRY )——然而这与 jQuery 无关。
你的例子和做的完全一样:
$.ajax({
url: "/myServerScript"
}).done(function(){
$('.loader').hide();
});
关于javascript - 何时使用 jquery 将函数分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243887/