【问题标题】:Return object list Jquery Ajax [duplicate]返回对象列表Jquery Ajax [重复]
【发布时间】:2014-07-16 01:10:08
【问题描述】:

我正在通过 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? 谢谢。

【问题讨论】:

    标签: javascript jquery ajax json api


    【解决方案1】:

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

    这是一种异步模式。这意味着test() 将立即返回,而不是等待 AJAX 调用完成,并且还没有任何值可以放入 x! AJAX 响应将在稍后的某个未知时间到达。回调函数的目的是让您(在那个时候!)用您收到的值做任何您打算做的事情。您尚未向我们展示此示例中的内容,但您需要对其进行重组,以便在实现承诺后发生。

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2021-09-18
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多