我遇到以下问题:使用jsonp(http://api.jquery.com/jQuery.ajax/,异步部分)时,无法在$ .ajax中关闭异步模式。所以代码
module = (function($)
{
var result = null;
var request = function(inputData)
{
$.ajax({
url: "http://some.site",
type: "post",
data: inputData,
dataType: "jsonp",
success: function(response)
{
result = response;
}
});
return result;
}
})($);
console.log(module.request());
将导致" null"在第一次调用时,在第二次调用的实际数据中。 那么如何让javascript等待ajax完成请求并且只有在返回结果之后呢?
答案 0 :(得分:1)
这是不可能的。您必须重新组织代码才能异步工作。在这里,我会为你做的。
var module = (function($) {
var request = function(inputData) {
return $.ajax({
url: "http://some.site",
//type: "post",
data: inputData,
dataType: "jsonp"
});
}
return { request: request };
})($);
module.request().done(function(result){
console.log(result);
});
还修正了其他一些小错误,我认为那些只是复制粘贴问题。