尝试通过一本书来学习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属性?
答案 0 :(得分:0)
您正在处理承诺对象。 从jQuery 1.5开始,所有jQuery的Ajax方法都返回XMLHTTPRequest对象的超集。这个jQuery XHR对象,或者" jqXHR," $ .getJSON()返回,实现了Promise接口,为它提供了Promise的所有属性,方法和行为。
所以.then()将在异步调用完成后调用,它将使用数据中的成功响应对象作为输入。
有关承诺的详细信息