在 javascript 中从 servlet 获得响应后更新文本区域

Update textarea after get response from servlet in javascript

我有一个程序调用 javascript 中的一个函数,对 1 个 servlet 发出 1 o 个请求,我想一个接一个地执行请求,并在每次执行后获得响应,这样我就有了 1 个函数,但它只显示所有请求都已执行后的结果。

function cmd(args) {
    width = 0;
    var res = args.split('\n');
    var largo = res.length;
    var progressLength = 100 / largo;
    for (var i = 0; i < largo; i++)
    {
        if (res[i] == 'desconectar')
        {
            desconectar();
            break;
        }
        else
        {
            executeCMD(res[i]);

        }
    }
}
function executeCMD(args)
{
    $.ajax({
        type: "POST",
        url: 'Controlador',
        data: {cmd: args, operacion: 1},
        success: function (response) {
            document.getElementById('respuesta').value = document.getElementById('respuesta').value + response;
        },
        dataType: 'text',
        async: false
    });
}

如果我添加window.alert(响应);在成功字段中,它逐步显示进度并且工作正常,但它显示我不想要的警报。

这是我想要的 http://imgur.com/a/9nclR 但我只得到最后一张照片。

如果有人感兴趣,解决方案是使用递归函数,如下所示:

function cmd(args) {
width = 0;
move(0);
var res = args.split('\n');
var largo = res.length;
var valInit = 0;
if (largo > valInit)
{
    executeCMD(res, valInit);
}
}


function executeCMD(args, i)
{
     $(document).ready(function () {
            $.ajax({
                type: "POST",
                url: 'ControladorServlet',
                data: {cmd: args[i], operacion: 1, ticket: ticket, iddispositivo: sesion},
                success: function (response) {
                    var textarea = document.getElementById('respuesta');
                    var res = response.trim().split('\n');
                    if(error){//dc}
                    else
                    {
                        document.getElementById('respuesta').value = document.getElementById('respuesta').value + response.trim() + "\n\n";
                        var valor = (100) * (i + 1) / args.length;
                        move(valor);
                        if (i + 1 < args.length)
                        {
                            executeCMD(args, i + 1);
                        }
                    }
                },
                dataType: 'text'
            });
        });
    }