Javascript 链接到jQueryAjax函数的事件是否足够快,可以在函数调用之前注册?
假设你写了这样的东西Javascript 链接到jQueryAjax函数的事件是否足够快,可以在函数调用之前注册?,javascript,ajax,Javascript,Ajax,假设你写了这样的东西 $.post(file, options) .done(function(data){ console.log('got data'); }) .fail(function(err){ console.warn('error!'); }); 可以按任何顺序链接每个事件,也可以忽略其中任何一个。那么,如何确保完成和失败事实上及时添加到事件列表中呢?如果$.post函数立即完成其请求,事件是否会触发?在您的示例中,应该立即传递
$.post(file, options)
.done(function(data){
console.log('got data');
})
.fail(function(err){
console.warn('error!');
});
可以按任何顺序链接每个事件,也可以忽略其中任何一个。那么,如何确保
完成
和失败
事实上及时添加到事件列表中呢?如果$.post
函数立即完成其请求,事件是否会触发?在您的示例中,应该立即传递done
和fail
中的函数。但是,即使您执行类似于var myDeferred=$.post(文件,选项)
的操作,以及稍后在代码编写myDeferred.done(函数(){…})
中执行的操作,该函数仍然会从$.post
调用接收结果,即使调用在此之前已经完成。(抱歉,时间太晚了,我找不到一个好的链接源-这是我过去的研究结果)你说的“事件”是什么意思?我只是不明白如何将done
和fail
链接到一个立即调用的函数。$.post
函数立即运行,并返回允许链接done
和fail
的内容。但是我的问题是,如果$.post
函数立即完成,那不是意味着完成了并且失败了
没有机会注册吗?这个设计怎么可能?或者它仅仅是基于一个已知的事实,即ajax请求从来都不是即时的?