我遇到了延期问题,我想知道是否有好的方法来处理
这是我的代码:
getFullAddressFromId: function (contactId) {
var contact;
$.ajax({
url: "/WebServices/FormOverview.asmx/GetFullAddressfromId",
data: { id: contactId},
success: function (result) {
contact = result;
},
error: function (err) {
_local.sendNotification.apply(this, ['Failed to load address information', 'Error']);
}
});
};
return contact;
}
这里的问题显然是“contact”在到达 return 语句时尚未加载,因为 Web 服务尚未完成运行。
如何推迟此函数 (getFullAddressFromId) 的返回以等待 webserbvice。
最佳答案
使用异步编程技术。
var getFullAddress = function(id, callback) {
$.ajax({
...
success: function(result) {
// stuff
callback(result);
}
});
}
或者使用deferred objects使用 jQuery 1.5+
var getFullAddress = function(id) {
return $.ajax({
...
});
}
getFullAddress("22").done(function() {
// handle result
});
关于javascript - 推迟此处理的好方法(javascript示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417482/