返回对象列表Jquery Ajax

时间:2014-07-16 01:10:09

标签: javascript jquery ajax json api

我通过Jquery AJAX调用C#api。我能够遍历所有数据并在控制台中打印每个数据;但是,我无法将数据返回到变量(var x),因此它包含从api调用返回的所有对象。

到目前为止,这是我的代码:

var uri = 'api/products';
function test(){
      // Send an AJAX request
      $.getJSON(uri)
          .done(function (data) {
            // On success, 'data' contains a list of products.

            var info = {};
            $.each(data, function (key, item) {
              // Add a list item for the product.
              console.log(item);
              info.append(item);
            });
            return info;
          });
}
var x = test();

我试图只是简单地跳过$.each()并返回data,但没有运气。

我应该使用除追加以外的方法吗?或者有没有办法简单地返回data? 感谢。

1 个答案:

答案 0 :(得分:0)

.done()是一个承诺(http://api.jquery.com/promise/),它接受回调函数。回调函数无效;没有消耗它的返回...代码中的return是(匿名)回调函数的返回,而不是test(),这就是为什么你没有看到任何价值出来的原因。

这是一种异步模式。这意味着test()将立即返回,而不是等待AJAX​​调用完成,并且还没有值放入x! AJAX响应将在稍后的某个未知时间到达。回调函数的目的是允许你(在那个时候!)做你打算用你收到的价值做什么。你还没有向我们展示这个例子中的内容,但是你需要在承诺完成后重组它。

相关问题