Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链接到jQueryAjax函数的事件是否足够快,可以在函数调用之前注册?_Javascript_Ajax - Fatal编程技术网

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请求从来都不是即时的?