Moh*_*dey 32 javascript jquery
我想要一个从ajax请求返回值的函数.我想停止javascript执行,直到函数获取其值由ajax异步请求返回.就像是:
function myFunction() {
var data;
$.ajax({
url: 'url',
data: 'data to send',
success: function (resp) {
data = resp;
},
error: function () {}
}); // ajax asynchronus request
return data; // return data from the ajax request
}
Run Code Online (Sandbox Code Playgroud)
su-*_*su- 44
你需要注册一个回调函数,如下所示:
function test() {
myFunction(function(d) {
//processing the data
console.log(d);
});
}
function myFunction(callback) {
var data;
$.ajax({
url: 'url',
data: 'data to send',
success: function (resp) {
data = resp;
callback(data);
},
error: function () {}
}); // ajax asynchronus request
//the following line wouldn't work, since the function returns immediately
//return data; // return data from the ajax request
}
Run Code Online (Sandbox Code Playgroud)
thu*_*mal 11
Ajax是异步的,这意味着调度了ajax调用,但是你的代码在不停止的情况下继续像以前一样运行.在收到响应之前,Ajax不会停止/暂停执行.你必须添加一个额外的回调函数或类似的东西.
function myFunction() {
var data;
$.ajax({
url: 'url',
data: 'data to send',
async: false,
success: function (resp) {
data = resp;
callback.call(data);
},
error: function () {}
}); // ajax asynchronus request
return data; // return data from the ajax request
}
Run Code Online (Sandbox Code Playgroud)
$.ajax({
url: 'url',
data: 'data to send',
async: false,
success: function (resp) {
data = resp;
},
error: function () {}
}); // ajax synchronus request
Run Code Online (Sandbox Code Playgroud)
你需要做asyn = False,如:
$.ajax({
async: false,
// ...
success: function(jsonData) {
//Your Logic
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
72803 次 |
最近记录: |