jQuery同步函数调用

时间:2018-06-11 21:40:47

标签: jquery asynchronous promise

尝试同步一些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
     }
});

事件摘要:

  • 点击
  • onUpdate(如果数据相同则取消)
  • 更新
  • 修改

0 个答案:

没有答案