使用jquery $ .ajax递归发送数据会产生堆栈溢出错误

Ros*_*sim 2 recursion jquery

当我执行以下操作时,为什么会出现"过多的递归"错误?

    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)

dec*_*eze 6

如果你绝对需要异步,单独的调用,至少做一点简单的递归:

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)