我必须包含 ajax 请求的函数。第一个请求批处理。然后根据 batchId 继续获取批次,直到它在存储累积结果时全部返回完成。一旦它返回完成,那么 batchRequest 应该返回一个包含所有结果的回调。
我不想使用 setTimeout ,因为它与 Android WebView 有一些问题。它应该在前一次完成后立即进行另一次 getBatch 检查。
var batchRequest = function(request, callback) {
$.ajax({
//some ajax request here
success: function(data) {
var results = [];
getBatch(data.batch.id, function(result) {
results.push(results.item);
if (result.done) {
callback(results);
} else {
getBatch(result.id);
}
});
}
});
};
var getBatch = function(batchId, callback) {
$.ajax({
//get using the batchId
success: function(data) {
callback(data);
}
});
};
最初我将 getBatch 函数嵌套在 batchRequest 函数中,但我觉得这不是最好的方法。如何让 batchRequest 循环 getBatch 并在完成后返回所有内容?