【发布时间】:2016-07-24 03:14:36
【问题描述】:
我有以下几点:
function wikiAjax (searchURL) {
return Promise.resolve($.ajax({
url: searchURL,
jsonp: "callback",
dataType: 'jsonp',
xhrFields: {
withCredentials: true
},
}));
}
$(".search-form").submit(function() {
var searchText = $('#search').val();
var searchURL = "https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=" + searchText + "&gsrlimit=15&prop=extracts&exsentences=3&exintro=&explaintext&exlimit=max&callback=JSON_CALLBACK";
console.log(searchURL);
var wikiResponse = wikiAjax(searchURL);
wikiResponse.then(function(data) {
alert(data);
}, function() {
alert("The call has been rejected");
});
});
但只有在某处放置断点(例如在wikiResponse.then 行)时,我才会得到答案。
然后看起来代码在调用返回结果之前执行,但为什么呢?承诺设置不正确吗?
非常感谢。
【问题讨论】:
-
是什么让你认为代码是在调用返回之前执行的?
-
@JesseLee 因为如果我放一个断点,我可以在警报中看到该对象。
标签: javascript jquery ajax promise es6-promise