У меня есть контроллер, делающий два вызова $ ресурсов против двух служб REST, где результат первого используется как вход второго.Последовательные вызовы ngresource
Вот код:
if (requestLock == false) {
$scope.T_01_04_sharedData.tempRequestForT_01_04 = insertNewRequest("aggr_1", $rootScope.globals.currentUser.username, "", "temp", "2016-07-30 00:00:00");
requestLock = true;
}
if (action == 'add') {
updateSelectedForRequest(prosumer, 'selected', $rootScope.globals.currentUser.username, $scope.T_01_04_sharedData.tempRequestForT_01_04);
} else {
updateSelectedForRequest(prosumer, 'non-selected', $rootScope.globals.currentUser.username, $scope.T_01_04_sharedData.tempRequestForT_01_04);
}
Функция updateSelectedForRequest
function updateSelectedForRequest(username, status, businessUser, request) {
WidgetService.T_01_04_updateSelectedForRequest.query({
businessUser_id: businessUser,
request_id: request,
username: username,
status: status
}, function (result) {
// response handler
});
}
Функция insertNewRequest
function insertNewRequest(bu_id_target, requester, description, status, validUntil) {
return WidgetService.T_01_04_insertNewRequest.query({
bu_id_target: bu_id_target,
requester: requester,
description: description,
status: status,
validUntil: validUntil
}, function (result) {
$scope.T_01_04_sharedData.tempRequestForT_01_04 = result.request_id;
return result;
});
}
Ошибка в том, что первый вызов не будет решена последовательно, так что вторая не имеет входа.
Есть ли возможность выполнять эти два вызова последовательно, чтобы дождаться второго вызова ввода от первого?
Большое спасибо.
Если вы хотите ждать окончания действия, чтобы выполнить второе, то вы должны использовать обещания. – Yoann
@Yoann вы можете сделать пример, пожалуйста? –