用Json-Object调用函数,它包含一个函数。如何在函数外获取返回变量?

时间:2013-05-02 10:51:54

标签: javascript scope

我使用JFeed Plugin在Javascript中读取有关RSS-feed的信息。你可以像这样使用这个插件:

jQuery.getFeed({
    url: 'rss.xml',
    success: function(feed) {
        alert(feed.title);
    }
});

不,我想创建一个函数,它返回如下的提要信息:

function getFeed(feedUrl) {
    message ="Error";

    jQuery.getFeed({
        url: 'http://www.spiegel.de/schlagzeilen/tops/index.rss',
        success: function(feed) {
            message = feed;
        }
    });

    return message;
}

它不起作用。如何在jQuery.getFeed(...)范围之外获得Feed变量?

1 个答案:

答案 0 :(得分:2)

它不会以这种方式工作,因为方法jQuery.getFeed是异步的,并且将在之前调用return。

您需要使用回调来获取Feed,如下所示:

function getFeed(feedUrl, callback){

    message ="Error";

    jQuery.getFeed({
      url: 'http://www.spiegel.de/schlagzeilen/tops/index.rss',
      success: function(feed) {
         callback(feed);
      }
    });
}

getFeed(feedUrl, function(feeds_returned) {
  console.log(feeds_returned);
});