我在 React-native 中使用 sqlite (react-native-sqlite-storage) 并且在我想关闭数据库时遇到了 promise 的问题:
this.dataUsuarios= await fetchData(this.url);
db = await openDB();
await this.insertarDatos();
db.close();
问题是当执行 db.close 时它给了我一个问题,因为 this.insertarDatos() 仍在处理但不知道为什么。我认为我的新承诺应该奏效!
insertarDatos = () =>{
return new Promise((resolve, rejection)=>{
db.transaction((tx) => {
for(let i in this.dataUsuarios){
const sql = `INSERT INTO usuarios VALUES (
${this.dataUsuarios[i].id},
'${this.dataUsuarios[i].nombre}',
'${this.dataUsuarios[i].usuario}',
'${this.dataUsuarios[i].password}',
${this.dataUsuarios[i].grupo},
'${this.dataUsuarios[i].faenas}'
);`;
tx.executeSql(sql, [], this.successCB(i), this.errorCB);
}
},resolve,rejection);
});
}