当我执行以下操作时,为什么会出现"过多的递归"错误?
function sendTheNames() {
alert("start submitting names..");
return function (array) {
var name = $(array.shift()).text();
$.ajax({
url: "test.jsp?name=" + name,
complete: function () {
if (array.length > 0) {
return arguments.callee(array);
}
}
});
};
}
$(document).ready(function () {
var selectedNames = [];
$('ul li input:checked').each(function () {
selectedNames.push($(this).parent());
});
alert("begin");
sendTheNames()(selectedNames);
alert("done");
});
Run Code Online (Sandbox Code Playgroud)
如果你绝对需要异步,单独的调用,至少做一点简单的递归:
var selectedNames = ['Abe', 'Burt', 'Chris'];
function sendNames() {
var name = selectedNames.shift();
$.ajax({
url: "test.jsp?name=" + name,
complete: function () {
if (selectedNames.length > 0) {
sendNames();
}
}
});
}
sendNames();
Run Code Online (Sandbox Code Playgroud)