0
你好我有三個帶有鏈接記錄的表(下一個表中的記錄在前面表中的記錄上有鏈接)。 現在我想在下表中刪除表格中的他的孩子的記錄。 我想使用遞歸,但我有承諾的問題。這裏是我的代碼:有角度的http承諾和遞歸
$scope.removeItem = function (table, itemId) {
var nextTableIndex = table.index + 1;
dbService.remove(table, [{
by: table.parentColumn == undefined ? "ID" : table.parentColumn, values: itemId
}]);
while (nextTableIndex < config.tables.length) {
var nextTable = config.tables[nextTableIndex];
dbService.getTableItems(nextTable.id, ["ID"], [{ by: nextTable.parentColumn, values: itemId }])
.then(function (data) {
var ids = select(data, "ID"); //return array with all ids ([1,2,3])
$scope.removeItem(config.tables[table.index + 1], ids);
});
nextTableIndex++;
}
}
dbService.getTableItems = function(tableId, columns, where){ //return promise
return $http.get(createUrl(tableId, columns, where));
}
只從第一個表格和最後一個表格中刪除。在遞歸中使用last last下一個表,因爲它首先執行整個過程,而不是執行「then」函數。我需要首先從數據庫加載數據,然後再調用下一個代碼。
如何立即加載數據是一種可能性?喜歡的東西:dbService.getTableItems(...).toArray()
謝謝