【问题标题】:How do I use a value outside of its function in JavaScript? [duplicate]如何在 JavaScript 中使用其函数之外的值? [复制]
【发布时间】:2014-02-11 10:53:09
【问题描述】:

我有一个从另一个 URL 调用 JSON 字符串的函数。 JSON 运行良好,并且表现得如我所愿。 'procode'这个变量是我想在函数外使用的,但我不知道如何将'procode'的值完全传递到函数之外,所以我可以在全局范围内使用它。

function(){
     $.get('http://url-here/api/product', function(data) {
         var rawcode = JSON.parse(data);
         var procode = '"products":' + rawcode;
     }, 'text');
}

提前感谢您的帮助:)

【问题讨论】:

    标签: javascript jquery json callback


    【解决方案1】:

    你需要设置全局变量才能在外面访问它。像这样:

    var rawcode="";
    var procode="";
    function(){
     $.get('http://url-here/api/product', function(data) {
         rawcode = JSON.parse(data);
         procode = '"products":' + rawcode;
        }, 'text');
     }
    

    【讨论】:

    • 您好 Milind,感谢您的快速回复!如果我将alert(procode); 放在 procode 变量本身之后的函数内,它会给我一个警报,其中包含我想要使用的确切代码,但是如果我按照你的建议并将alert(procode); 放在函数后面,它只会返回一个空警报框。我哪里错了?
    • 视觉恐惧症,$.get() 属于延迟类型。您必须等待 procode 被 ajax 调用填充。
    • @Visiophobia:这是因为代码在通过 jquery get 请求获得响应之前被执行。要获取修改后的值,您需要为获取请求或 setTimeout 编写成功函数并执行代码。仅供参考,使用 setTimeout 是不好的做法,因为您不会知道如何在不同的环境中取得成功。
    【解决方案2】:
    window.procode="";
    var myFunction = function(){
        var ajaxCall = $.get('http://url-here/api/product', function(data) {
           var rawcode = JSON.parse(data);
           window.procode= '"products":' + rawcode;
        }, 'text');
    
        $.when(ajaxCall).done(function(){
           alert(window.procode);
        });
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-03
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      相关资源
      最近更新 更多