Ich habe eine Steuerung, die zwei $ Ressourcenaufrufe gegen zwei REST-Dienste macht, wobei das Ergebnis der ersten als Eingabe von der zweiten verwendet wird.Sequenziell ngresource Aufrufe
Hier ist der Code:
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);
}
Funktion 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
});
}
Funktion 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;
});
}
Der Fehler ist, daß der erste Anruf sequenziell nicht behoben ist, so dass die zweite keinen Eingang hat.
Gibt es die Möglichkeit, diese zwei Anrufe sequenziell zu führen, um auf den zweiten Anruf die Eingabe vom ersten zu warten?
Vielen Dank.
Wenn Sie das Ende einer Aktion warten wollen ein zweites auszuführen, Sie dann sollte Promises verwenden. – Yoann
@Yoann kannst du bitte ein Beispiel machen? –