Javascript jQuery:检测是否有ajax调用

Javascript jQuery:检测是否有ajax调用,javascript,ajax,jquery,Javascript,Ajax,Jquery,我有一个函数X,它可以发送ajax调用,也可以不发送ajax调用。 然后我有一个调用X的函数Y,我想知道发生了什么——是否发送了ajax调用。 我应该提到,函数X是一个“黑匣子”——这意味着我不能改变它的实现来返回指示值 我尝试使用.ajaxSend(),但它仅在有ajax调用时触发。因此,在没有ajax的情况下,我没有得到任何指示 为了解决这个问题,我尝试使用.promise().done()和.ajaxSend()来处理,好像在说“如果有ajax调用,那么会触发ajaxSend并保存一个布尔

我有一个函数X,它可以发送ajax调用,也可以不发送ajax调用。 然后我有一个调用X的函数Y,我想知道发生了什么——是否发送了ajax调用。 我应该提到,函数X是一个“黑匣子”——这意味着我不能改变它的实现来返回指示值

我尝试使用.ajaxSend(),但它仅在有ajax调用时触发。因此,在没有ajax的情况下,我没有得到任何指示

为了解决这个问题,我尝试使用.promise().done()和.ajaxSend()来处理,好像在说“如果有ajax调用,那么会触发ajaxSend并保存一个布尔值。然后在最后会触发done()并查看该布尔值以确定发生了什么”

问题是如何确保done()不会在ajaxSend之前弹出

还是有更好的方法


谢谢

将逻辑仅放在
done()
中如何?只需离开
.ajaxSend()
@ShivanRaptor:那么我怎么知道ajax是否发生了呢?如果有
.done()
,就会有一个ajax调用,对不对?@ShivanRaptor:没有。如果有ajax调用,就会触发.ajaxSend()事件处理程序。但是如果没有ajax调用,它将不会被触发。从jQuery文档中我了解到,当所有排队操作在特定元素上执行完毕时,会触发.done()函数。但不幸的是,我不能确定ajax调用是否被视为“排队操作”。我不明白docsi想知道你在做什么项目,使用一个黑盒函数X。该函数是否返回有意义的值(表示是否进行了AJAX调用)?