Page 1 of 1

Warum reagiert meine App nicht mehr auf Löschen von Befehlen?

Posted: 08 Feb 2025, 04:36
by Guest
Ich habe eine SQLite-Datenbank für eine native Android Expo React-App unter Verwendung von Expo-SQLite 13.2.2. Wenn ich alle Daten aus der Datenbank lösche, hängt das Ganze. Ich habe Konsolen.log -Aussagen zu meinen Erfolgs- und Misserfolgs -Rückrufen, aber auch nicht ausgeführt. Protokollanweisungen bestätigen, dass keine andere Funktion nach dem Löschen von . Durch das Löschen einer Tabelle, in der keine Fremdschlüsse enthalten sind, wird das gleiche Ergebnis erzielt. In Table_Names Enum sind 7 Tabellen enthalten. Promise.All Auflösungen, obwohl mein Code die Konsole.log vor den Auflösungsanweisungen nie ausführt.

Code: Select all

export function clearAllData() {
const promiseArray : Promise[] = [];

// avoid foreign key constraint failures
const tableNamesReverse = [...Object.values(TABLE_NAMES)].reverse();

for (const tableName of tableNamesReverse) {
promiseArray.push(
new Promise((resolve, reject) => {
database.transaction((tx) => {
console.log(`DELETE FROM ${tableName}`)
tx.executeSql(
`DELETE FROM ${tableName}`,
[],
(_, result) => {
console.log(`Deleted table ${tableName}`)
resolve();
},
(_, err) => {
console.log(err);
reject();
return true;
}
);
});
})
)
}
return Promise.all(promiseArray);
}
< /code>
Meine Konsole: < /p>
 LOG  clearing all data!  // This is from the line that calls the above method
LOG  DELETE FROM migrations
< /code>
Vereinfachung, nur ein Versprechen zu wartenexport async function clearAllData() {
await new Promise((resolve, reject) => {
database.transaction((tx) => {
tx.executeSql(
`DELETE FROM ${TABLE_NAMES.Migrations}`,
[],
(_, result) => {
console.log(`Deleted table ${TABLE_NAMES.Migrations}`)
resolve();
},
(_, err) => {
console.log(err);
reject();
return true;
}
);
});
});
return;
}