javascript / jQuery中的回调函数参数

时间:2015-08-19 06:28:24

标签: javascript jquery

尝试通过一本书来学习jQuery ui。我遇到了这段代码

 $("#autocomplete").autocomplete({
     minLength: 2,
     source: function (request, response) {
         $.getJSON("https//api.github.com/search/repositories", {
             q: request.term + " in:name"
         })
             .then(function (data) {
             var matches = $.map(data.items, function (repo) {
                 return repo.full_name;
             });
             response(matches);
         });
     }
 });

在.then(function(data){})中,是$ .getJSON()函数的结果传递的数据对象?我检查了jQuery API。我想在这种情况下我正在处理doneFilter回调,但API没有提到在函数中传递的任何默认对象。任何人都可以解释更多有关此行为?为什么数据对象包含items属性?

1 个答案:

答案 0 :(得分:0)

您正在处理承诺对象。 从jQuery 1.5开始,所有jQuery的Ajax方法都返回XMLHTTPRequest对象的超集。这个jQuery XHR对象,或者" jqXHR," $ .getJSON()返回,实现了Promise接口,为它提供了Promise的所有属性,方法和行为。

所以.then()将在异步调用完成后调用,它将使用数据中的成功响应对象作为输入。

有关承诺的详细信息

http://davidwalsh.name/write-javascript-promises