使用$ .get检索JSON数组但无法在函数外设置检索到的数组值

时间:2017-06-06 14:10:39

标签: javascript jquery

如果我执行以下操作,它会在console.log中为我提供我想要的值。

        var q;

        $.get('/ajax_subscribers', { code: 'qyhskkcnd'},
            function(returnedData){
                q = returnedData;
                console.log(q);
            });

但如果我这样做

        var q;

        $.get('/ajax_subscribers', { code: 'qyhskkcnd'},
            function(returnedData){
                q = returnedData;
            });

        console.log(q);

q没有值,是未定义的值?为什么我不能将returnedData设为公开?

2 个答案:

答案 0 :(得分:0)

$.get是异步的。您在ajax能够完成之前记录。换句话说,一旦$.get收到服务的响应,var q将只有值。

您应该在回调函数中处理returnedData。如果太复杂,可以委托另一个函数,例如:

        $.get('/ajax_subscribers', { code: 'qyhskkcnd'},
        function(returnedData){
            doStuffWithReturnedData(returnedData);
        });

答案 1 :(得分:-1)

您的$.get()是异步的。

要解决此问题,请尝试设置Promise