【发布时间】:2015-03-12 12:54:07
【问题描述】:
假设我有一个名为 makeRequest() 的函数,它向服务器发出 AJAX 请求。
现在让我们假设我知道应该发出这个请求的次数,但我不能异步执行它们,而是同步执行。
例如,给我数字 5,我将调用 makeRequest(),当它完成后,我将再次调用它,当它完成时,我将再次调用它......我应该最终调用它5次。
我不是 JavaScript 专家,但我发现通过使用回调来处理异步调用很容易。
所以,我的makeRequest() 函数采用callback 参数,该参数将在请求成功时执行。
在我之前的示例中,我必须发出 5 次请求,因此行为应该如下所示:
makeRequest(function () {
makeRequest(function () {
makeRequest(function () {
makeRequest(function () {
makeRequest(function () {
});
});
});
});
});
我如何设计它以使其对提供给我的 任何 参数(无论是 6、12 还是 1)表现相同?
PS:我尝试了很多方法,最常见的方法是创建等待完成的请求设置标志的 while 循环。所有这些方法都会使浏览器认为脚本崩溃并提示用户停止脚本。
【问题讨论】:
-
你有没有尝试在上一个的成功处理函数中再次调用该函数?
标签: javascript jquery ajax asynchronous synchronization