【问题标题】:how to get the value of a variable used in a function inside GET request?如何获取 GET 请求中函数中使用的变量的值?
【发布时间】:2015-07-24 15:12:14
【问题描述】:

您好,我正在使用 YouTube API 获取视频统计信息,并且我正在向 API 发出 GET 请求,并且也能够获得响应。此外,我需要返回在每个循环中分配的变量值。下面是代码,请告诉我如何在 GET 请求之外获取变量值。

function getVideoCount(videoId) {
    var count = null;                
       $.get(
            "https://www.googleapis.com/youtube/v3/videos",{
            part: 'statistics',
            id : videoId,
            key : 'AIzaSyB8BFP0N1eRGGhSh4xYYyz43QTBSHhOdy4'},                
            function(data){
                //console.log(data.items["statistics"]);
                $.each(data.items, function(i , item){
                    count =  item.statistics.viewCount;                     
                })
            //console.log(count);
            }
            //console.log(count)                    
    );
    console.log(count);
    return count;
}

在这里,我需要返回 count 的值。它现在返回我在开始时分配的值。

【问题讨论】:

    标签: jquery get youtube-api


    【解决方案1】:

    您可以通过使用 Javascript 闭包来实现此功能。 我在 http://www.w3schools.com/js/js_function_closures.asp 上找到了一个类似的例子,你可以看看了解。

    我在这里写了一些例子,你可以看看:

    var count=(function(){
        
          var counter=0;
        
          return function (){
              
            counter+=1;
            return counter;
          }
        })();
    
    function myFunction(){
        document.getElementById("demo").innerHTML = count();
    }
    <p>Counting with a local variable.</p>
    
    <button type="button" onclick="myFunction()">Count!</button>
    
    <p id="demo">0</p>

    计数器的任何更新都进入内部功能块。在您的情况下,您可以在该块内调用 get 请求,更新计数器并在成功回调时返回其值。

    如果有帮助,请告诉我。

    【讨论】:

      【解决方案2】:

      Get 方法是异步的,你不能这样获取它,因为你的返回发生在你的 GET 请求结束之前。 一种方法是在您的 getVideoCount 函数上进行回调,并在您的 GET 请求结束后调用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-26
        • 2014-04-18
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        • 1970-01-01
        • 1970-01-01
        • 2012-01-15
        相关资源
        最近更新 更多