Возврат значения обещания в обратном вызове события

0

Я использую угловой модуль перетаскивания: 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;
}

Поэтому возвращаемое значение не определено, поскольку обратные вызовы будут выполняться после получения ответа от сервера. Как мне реорганизовать мой код для достижения этой цели?

  • 0
    Возможно, вы захотите взглянуть на проблемы этого проекта, связанные с № 168 и № 173.
Теги:
promise

1 ответ

0
Лучший ответ

Поскольку документация о событиях ничего не говорит о том, что Обещания принимаются как возвращаемые значения обратного вызова - ответ таков: вы не можете.

Запрос, который вы сделаете, будет добавлен в конец исполняемого стека (так что он будет выполнен позже, после выполнения всех текущих заданий). Он не будет прерывать выполнение обратного вызова. Таким образом, выполнение обратного вызова достигнет конца кода, а обработчик ответа на запрос не повлияет на возвращаемое значение обратного вызова.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню