从Javascript函数返回变量

从Javascript函数返回变量,javascript,jquery,ajax,Javascript,Jquery,Ajax,我无法返回此函数的结果 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) {

我无法返回此函数的结果

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;
}

您必须在
success
回调中使用
return
,因为Ajax中的A异步的

像这样:

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;
        }
    });
}

但是,这个函数不能保证返回。你必须使用回调函数之类的东西。

use
return
success
callback中它与你的AJAX调用是异步的这一事实有关,例如,你的问题也被询问(和回答)了一百万次。在你的ajaxNote
get\u duration()中使用
async=false
仍然以这种方式返回未定义的