如何在调用异步Web服务响应时将值设置为数组

时间:2012-03-20 10:06:43

标签: javascript

我在javascipt中声明了数组

var Answer1 = new Array(50);

我想使用$ ajax& amp;来调用webserivce我想将其响应存储在适当的数组索引。 &安培;想要在设置所有值后立即使用该数组。 目前我通过使用$ ajax的async:false属性来执行此操作。 有没有人知道asynchrnous方式,因为当我使用数组的异步值时仍未定义。

for(var j=0;j < mycollection.length-1;j++)
{
$.ajax({
                type: 'GET',
                url: webserviceURL,
                dataType: 'json',
                error: function(data)
                {
                    //alert(data.error);
                },
                success: function(data)
                {
                    if(data.error!=null)
                    {
                        console.log('data error');
                        Answer1[j] = data.name;
                    }
               },
                complete: function(data)
                {
                alert('completed:');
                },
                data: {},
                async: false
            });

2 个答案:

答案 0 :(得分:0)

你使用了错误的Answer1索引:

Answer1[i] = data.name;

应该是:

Answer1[j] = data.name;

但如果仍然无效,请将j作为参数传递给您的Web服务,并让Web服务将其作为响应的一部分返回,以便您知道要分配的索引。

另外,如果data.error不为null,您只是分配?这是你想要的,如果没有错误,你不想分配(即data.error为空)?

答案 1 :(得分:0)

将使用数组的任何代码放入函数中。从Ajax调用的成功处理程序中调用该函数。