繁体   English   中英

在事件回调中返回承诺值

[英]Returning promise value in event callback

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

我对这个活动感兴趣

dnd-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;
}

因此返回值是不确定的,因为回调将在从服务器获得响应后执行。 我应该如何重构代码以实现此目标?

由于事件的文档没有说任何有关Promises被接受为回调的返回值的信息-答案是: 您不能

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM