2016-09-05 217 views
0

我使用角拖放模塊:https://github.com/marceljuenemann/angular-drag-and-drop-lists返回承諾值

我感興趣的這個事件

DND-降可選表達被調用,當元件是 下降的名單。

返回值確定液滴的進一步處理:

假的液滴將被取消,該元件不會被插入。

true發出允許丟棄的信號,但下降回調 將負責插入元素。

在這個事件回調中,我向REST服務器發出一個請求,以查看是否可以刪除項目,並且我想根據其響應返回true或false。因此,代碼看起來是這樣的:

function dropCallback(){ 
    var value; 
    $http.post('url', data) 
     .then(function success(){ 
      value = true; 
     }, function error(){ 
      value = false; 
     }); 
    return value; 
} 

所以返回值是不確定的,因爲回調會從服務器獲取響應後執行。 我應該如何重構我的代碼來實現這一目標?

+0

你可能想看看有關這個項目的問題[#168](https://github.com/marceljuenemann/angular-drag-and-drop-lists/issues/168)和[#173 ](https://github.com/marceljuenemann/angular-drag-and-drop-lists/issues/173) – Jack

回答

0

由於事件的文檔沒有提供任何有關Promise被接受爲回調的返回值 - 答案是:您不能

所做的請求將被添加到執行堆棧結束(所以它會在以後執行,目前所有的工作完成後)。它不會中斷回調的執行。所以回調執行只會到達代碼結束,並且您的請求響應處理程序不會影響回調的返回值。