[英]jQuery promise .done() is firing immediately, not waiting for server to return
我正在尝试使用$ .post()函数返回的promise的.done()事件。 它正在调用的服务器端函数需要五秒钟才能返回。 问题是.done()事件立即触发,就好像它已经完成一样。 请参阅下面的代码。 如果我在.post()调用中内联定义成功函数,则该函数可以正常工作,则仅是promise对象上的.done()事件立即消失。 知道我缺少什么吗?
$(document).ready(function () {
$("img.spinner").hide();
var hideSpinner = function (img) {
$(img).hide();
}
$("button.Update").click(function () {
var img = $(this).siblings("img.spinner").show();
var promise = $.post('/MyFunc/Func',
function(){
$(img).hide();
}
);
promise.done(hideSpinner(img));
});
})
这是因为hideSpinner(img)
调用hideSpinner
函数。 它是一个函数调用,而不是对函数的引用。 尝试这个:
promise.done(function () {
hideSpinner(img)
});
您需要传递一个对done的函数引用...相反,您要调用hideSpinner
函数并将其返回的值作为done回调传递。
promise.done(function(){
hideSpinner(img)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.