在事件回调中返回promise值

时间:2016-09-05 20:57:32

标签: javascript angularjs promise

我使用角度拖放模块:https://github.com/marceljuenemann/angular-drag-and-drop-lists

我对此次活动感兴趣

  

dnd-drop 元素所在时调用的可选表达式   放在名单上。

     

返回值决定了对drop的进一步处理:

     

false将取消放置并且不会插入元素。

     

true表示允许丢弃,但是dnd-drop回调   将负责插入元素。

在此事件回调中,我向我的REST服务器发出请求以查看是否可以删除项目,并且我希望根据其响应返回true或false。所以代码看起来像这样:

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

因此返回值未定义,因为在从服务器获得响应后将执行回调。 我应该如何重构我的代码来实现这个目标呢?

1 个答案:

答案 0 :(得分:0)

由于事件的文档没有说明Promise被接受作为回调的返回值 - 答案是:你不能

您所做的请求将被添加到执行堆栈的末尾(因此,在完成所有当前作业之后,它将在稍后执行)。它不会中断回调的执行。因此,回调执行只会到达代码端,而您的请求响应处理程序不会影响回调的返回值。