我有一個名爲handleWidgetDrop的函數。在函數中,我調用另一個函數insertBlankWidget,它在promise對象的返回時執行某個函數。問題在於在函數調用到insertBlankWidget之後的handleWidgetDrop中的代碼在承諾對象中的代碼之前得到執行。在調用insertBlankWidget()之後的代碼之前執行promise對象成功執行之後,如何撤消此操作並在函數中執行代碼。 如何獲取承諾對象成功函數中的代碼在調用之後的代碼之前執行?
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
});
}
使用回調,http://jsbin.com/zejowogemi/1/edit? – 2014-10-28 14:20:58
訣竅是你只需要知道哪些代碼可以異步運行。任何異步都必須進入JavaScript中的回調函數。將回調想象爲稍後存儲代碼。然後,您只需將您的回調傳遞給承諾對象,或者在另一個回調中調用回調,或者使用許多其他可用工具之一來管理異步代碼執行。 – Keen 2014-10-28 14:31:22