【发布时间】:2020-10-16 06:50:59
【问题描述】:
如果我删除 async:false,我的 ajax 调用将不再起作用,您能否建议更好的方法而不使用 async:false。
var json = JSON.stringify(mark.toJSON());
var src = "";
if (json.length > 1024) {
$.ajax(Constants.Url_Base + 'Annotations/CreateMessage', {
data: { jsAnnotation: json },
type: 'post',
async: false,//added so that events executes in proper order
success: function (resp) {
if (resp.status !== 'ok') {
ErrorHandler.addErrors(resp.message, css.warningErrorClass, css.warningErrorClassTag, css.inputErrorClass, '');
}
else {
var messageId = encodeURIComponent(resp.result);
json = messageId;
}
}
});
}
src = Constants.Url_Base + "Annotations/GetAnnotationPng?jsAnnotation=" + encodeURIComponent(json);
var pdto = this.getPDTO();
var dpi = Math.max(pdto.get('RezX'), pdto.get('RezY'));
if (dpi > 0) {
src += "&dpi=" + dpi;
}
return src;
}```
【问题讨论】:
-
它以什么方式“不再起作用”?大概这个例程会触发多次,您需要将数据按顺序发送到服务器。如果是这样,那么你会想要创建一个消息队列,并有一个函数运行队列中的第一个项目并在它被传递后循环。
标签: jquery ajax asynchronous async-await