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 在没有回调的情况下处理背靠背AJAX调用(如果可能)_Javascript_Ajax_Concurrency - Fatal编程技术网

Javascript 在没有回调的情况下处理背靠背AJAX调用(如果可能)

Javascript 在没有回调的情况下处理背靠背AJAX调用(如果可能),javascript,ajax,concurrency,Javascript,Ajax,Concurrency,我在web应用程序中有一个函数,可以调用AJAX来更新元素。我有其他使用这个函数的函数,还有其他使用这些函数的函数 假设我有一个函数,可以进行AJAX调用。函数B调用函数A,函数C调用函数B 现在假设我有函数D,这是另一个进行AJAX调用的函数 我想先调用函数C,然后调用函数D。问题是我遇到了一个问题,函数D有时使用从函数C调用返回的响应。所以我不希望函数D在收到函数C的AJAX请求的响应之前运行 由于AJAX请求发生在链的最下面(C>B>A),让函数C接受回调,然后将该调用传递回B,B将该回调

我在web应用程序中有一个函数,可以调用AJAX来更新元素。我有其他使用这个函数的函数,还有其他使用这些函数的函数

假设我有一个函数,可以进行AJAX调用。函数B调用函数A,函数C调用函数B

现在假设我有函数D,这是另一个进行AJAX调用的函数

我想先调用函数C,然后调用函数D。问题是我遇到了一个问题,函数D有时使用从函数C调用返回的响应。所以我不希望函数D在收到函数C的AJAX请求的响应之前运行

由于AJAX请求发生在链的最下面(C>B>A),让函数C接受回调,然后将该调用传递回B,B将该回调传递给A,这样A就可以在收到对其AJAX请求的响应后调用该回调函数

这实际上是最好的方法,还是可以更干净地进行?如果有区别,我更喜欢不使用任何额外库的解决方案(例如jQuery)


非常感谢您的帮助。

您想使用模式。

您可以将ajax事件绑定到元素,而不是回调,使用类似于使用PHP的库来澄清一下,为什么不能使用函数a进行ajax调用,而不是编写另一个调用a的函数B和另一个调用B的函数C?在我的特定示例中,函数A是一个通用的AJAX请求执行函数,函数B是一个“保存文件”函数,函数C是一个“将文件另存为”函数。所以“将文件另存为”会做一些事情,不可避免地会调用“保存文件”,这也会做一些事情,然后调用函数A来生成AJAX请求。这叫做承诺,没有库(甚至有库…)就很难做到正确。干杯,我知道一定有东西在那里。非常感谢你!