尝试同步一些jQuery函数。有一个调用ajax更新函数的click函数。在更新完成之前,无法调用编辑功能。事件处理程序中有逻辑用于检查数据是否为脏,如果不是,则取消更新事件。这就是问题出现的地方。如果通风口被取消,代码将永远等待ajax调用完成。然后将代码更改为以下内容,但现在它永远不会等待函数完成。
object.Object({
Update: function(){
return $.ajax({//do some ajax stuff})
},
onUpdate: function(args){
if(args.newData == args.oldData){
args.cancel; //cancel event
//what to return here
}
},
Click: function(args){
$.when(this.CheckClick()).then(
this.Edit(args.item1)
)
},
CheckClick: function(){
var d = $.Deferred();
if(this._editMode){
//below needs to wait until complete or cancelled by onUpdate()
this.Update().done(function(){
return d.resolve();
})
}
//what to return when not in edit mode and can proceed
},
Edit: function(item){
//do some edit stuff
}
});
事件摘要: