如何使用范围外的javascript变量? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用范围外的javascript变量? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在使用$.get功能从动作方法中获取json数据。但是出于$.get()函数的javascript变量获取默认值。

代码看起来像:

var data = 0;
$(document).ready(function () {
    var url = "/Controller/Action";
    $.get(url, null, function (Data) {
       data = JSON.stringify(Data);
       console.log(data);
    });
    console.log(data);
 });

输出显示如下:

[{"Name":"Jatin","Address":"surat","colorScheme":"#1696d3"},{"Name":"Jatin","Address":"surat","colorScheme":"#1696d3"},{"Name":"Jatin","Address":"surat","colorScheme":"#1696d3"}]

然后

显示0

我如何使用超出范围的数据值?

答案

不要在$ .get调用中的数据前面声明'var'。这声明了一个新变量。由于数据已经在函数范围之外定义,因此通过执行“data = JSON.stringify(Data);”来简单地更改值。

        var data = 0;
        $(document).ready(function () {
            var url = "/Controller/Action";
            $.get(url, null, function (Data) {
               data = JSON.stringify(Data);
               console.log(data);
            });
            console.log(data);
         });

编辑:与OP聊天后,他试图以同步方式使用$ .get的响应数据。为此,我建议移动依赖于ajax成功函数中的响应数据的代码或使用jquerys $ .when()函数

以上是关于如何使用范围外的javascript变量? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

javascript,promise,如何在 then 范围内访问变量 this [重复]

地理定位功能中的 JavaScript 变量范围

如何在 Promise.then 中访问范围外的变量(类似于闭包)

for循环外的变量范围

无法访问异步函数外的变量[重复]

如何访问公用文件夹外的图像(Laravel)[重复]