【问题标题】:What is returned in this ajax callback function?这个ajax回调函数返回什么?
【发布时间】:2014-02-03 10:21:10
【问题描述】:

我无法弄清楚 此 ajax 请求的回调部分中最终返回的内容...

代码如下:

        function (fn) {
        $.ajax({
          url: "https://api.parse.com/1/classes/chats",
          data: {
             order: 'createdAt',
             limit: 10
          },
          type: "GET"
        })
        .done(function(data) {
          var messages = [];
          for (var i = 0, len = data.results.length; i < len; i++) {
            messages.push(data.results[i].text);
          }

          return fn(messages);
        });
      },

我了解上半部分正在向服务器执行 GET 请求。然后,此顶部返回一个 JSON 对象,其中包含一个列出对象的 JSON 数组。

然后在成功从服务器检索数据时执行回调。回调函数通过将每个服务器检索到的消息添加到消息数组来处理响应。

但是让我感到困惑的是回调最终返回的内容......

return fn(messages);

"fn" 也是初始函数调用的参数。有人可以解释一下这里到底发生了什么吗?回调最终返回的是什么?该回调返回的内容最终会作为整个函数的参数输入吗?如您所见,我有点困惑...

【问题讨论】:

    标签: jquery get asynccallback


    【解决方案1】:

    该代码令人困惑,因为它返回一个从未使用过的值。

    最后一行应该是这样的:

    fn(messages);
    

    从回调返回任何东西到done 方法是没有意义的,因为它会被忽略。

    调用函数时参数fn的值应该是一个函数,当AJAX调用完成时会调用该函数。这就是您从 AJAX 调用中获取结果的方式。

    示例;假设函数名为 xyz,你可以这样称呼它:

    xyz(function(msg) {
      // in here you can use the `msg` parameter to get the messages from the call
      alert(msg);
    });
    

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2018-01-28
      • 1970-01-01
      相关资源
      最近更新 更多