我有一个名为handleWidgetDrop的函数。在函数中,我调用另一个函数insertBlankWidget,该函数将在promise对象返回时执行某个函数。问题是在对promiseBillkWidget中的代码进行调用之前,将执行对insertBlankWidget的函数调用之后的handleWidgetDrop中的代码。我如何撤消此操作,并在成功执行promise对象后在调用insertBlankWidget()之后的代码之前执行函数中的代码。


handleWidgetDrop:function (){
    //some lines
    this.insertBlankWidget();
    //Lines after insertBlankWidget call
}

insertBlankWidget:function(){
    var promise=this.getWidgetModel();
    promise.done(function(){
       //code which must be executed before Lines after insertBlankWidget
    });
}

最佳答案

只需在promise上链接一个.done函数。尽管如此,您必须从insertBlankWidget返回诺言:

insertBlankWidget:function(){
    var promise=this.getWidgetModel();
    promise.done(function(){
       //code which must be executed before Lines after insertBlankWidget
    });
    return promise;
}


然后,您将可以链接到handleWidgetDrop

handleWidgetDrop:function (){
    //some lines
    this.insertBlankWidget().done(function(){
        //Lines after insertBlankWidget call
    });
}

09-17 09:30