2014-03-29 122 views
3

我無法返回此函數的結果。從Javascript函數返回變量

function get_duration() { 
    var a = ''; 
    $.ajax({ 
     url: "http://gdata.youtube.com/feeds/api/videos?q=3KMz3JqRByY&max-results=50& format=5,1,6", 
     dataType: "jsonp", 
     success: function (data) { 
      re2 = /seconds='(\d+)'/ig; 
      while (re.exec(data) != null) { 
       a = re2.exec(data); 
      } 
     } 
    }); 
    return a; 
} 
+0

在'success'回調中使用'return' –

+2

它與你的AJAX調用是異步的有關,你的問題也被問及(並回答)了一百萬次,例如[here](http:///stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call?lq=1)。 –

+0

在你的ajax中使用'async = false' –

回答

1

你必須使用returnsuccess回調以來,在阿賈克斯異步內。

像這樣:

function get_duration() { 
    var a = ''; 
    $.ajax({ 
     url: "http://gdata.youtube.com/feeds/api/videos?q=3KMz3JqRByY&max-results=50& format=5,1,6", 
     dataType: "jsonp", 
     success: function (data) { 
      re2 = /seconds='(\d+)'/ig; 
      while (re.exec(data) != null) { 
       a = re2.exec(data); 
      } 
      return a; 
     } 
    }); 
} 

但是,這個功能是不能保證返回。你將不得不使用回調函數類的東西。

+0

注意'get_duration()'仍然以這種方式返回'undefined'。 –

+0

是的,謝謝我編輯 –