尝试使其工作很困难,我想知道它是否是可以接受的解决方案。情况如下:
很难将这些实体按顺序插入。创建一个FOR循环,每次都在其中调用插入函数/方法...,并且由于每次迭代都开始了一个新的Promise而又没有结束的过程而造成混乱。因此,它尝试打开“交易内部交易”,并启动了Error。
最后,我尝试了这样的RECURSION函数:
static loopInsert(): any {
let db = AppModule.DataBaseInstance;
let davez = AppModule.ObjectList.shift();
return db.executeSql('BEGIN TRANSACTION', [])
//blablabla
return db.executeSql(<<INSERT-INTO COMMAND>>)
//blablabla
return db.executeSql(<<INSERT INTO COMMAND WITH THE ROWID OF THE
//blablabla
return db.executeSql('COMMIT TRANSACTION', [])
//blablabla
return db.executeSql('ROLLBACK', [])
//blablabla
ContaUsr.loopInsert() << AGAIN!!!!
在这里,DataBaseInstance和要保留在数据库中的对象列表不在函数范围之内,甚至在Class之外。每次递归函数被调用时,我都会咬掉一个ObjectList,直到没有对象离开。
通过这样的过程,我终于可以将所有Promises链接起来,并且只有在我认为需要时,在将所有对象存储在数据库中之后才能继续执行。
这太奇怪了吗? 预先感谢。