Javascript变量范围:从回调函数中提取变量

时间:2015-03-19 10:13:13

标签: javascript jquery

这是一些基本的变量范围问题,但我无法想象如何从异步回调函数中“提取”变量:

<html>

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>

<body>
    <div id="container"></div>
    <script>

    var API_KEY = "***";
    var USERNAME = "***";
    var res;

        $(
            start()
        );

        function start(){

            $.getJSON(
                "https://www.googleapis.com/youtube/v3/channels",
                {"part": "contentDetails", "forUsername": USERNAME, "key": API_KEY},
                function(data){
                    alert("Success");

                    var s = "";
                    s = data.items[0].contentDetails.relatedPlaylists.uploads;

                    $("#container").html(s);
                    var res = s;
                }
            );

        };
    </script>
</body>

</html>

我有这个代码获取有关Youtube频道的信息,我尝试将“s”放在“res”中,这是一个全局变量,但它不起作用。有办法吗?

(如果有人知道从getJSON返回的响应对象中提取数据的更好方法,那将是一个更好的主意,但我无法弄明白......)

由于

1 个答案:

答案 0 :(得分:-1)

更新下面的代码。在侧面成功函数中从res中删除var。阅读有关javascript变量范围HERE

的更多信息
function start(){

        $.getJSON(
            "https://www.googleapis.com/youtube/v3/channels",
            {"part": "contentDetails", "forUsername": USERNAME, "key": API_KEY},
            function(data){
                alert("Success");

                var s = "";
                s = data.items[0].contentDetails.relatedPlaylists.uploads;

                $("#container").html(s);
                 res = s;
            }
        );

    };
相关问题