如何在get请求中获取函数中使用的变量的值



嗨,我正在使用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的值。它现在返回我在开始时分配的值。

您可以通过使用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请求,更新计数器并在成功回调时返回其值。

如果有帮助请告诉我。

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

相关内容

  • 没有找到相关文章

最新更新