change cleanupTransactions to avoid stack overflow
This commit is contained in:
parent
710ac31af3
commit
57d6a8390d
@ -242,7 +242,7 @@ export const tryGc = (ds, store, gcFilter) => {
|
|||||||
* @param {number} i
|
* @param {number} i
|
||||||
*/
|
*/
|
||||||
const cleanupTransactions = (transactionCleanups, i) => {
|
const cleanupTransactions = (transactionCleanups, i) => {
|
||||||
if (i < transactionCleanups.length) {
|
while (i < transactionCleanups.length) {
|
||||||
const transaction = transactionCleanups[i]
|
const transaction = transactionCleanups[i]
|
||||||
const doc = transaction.doc
|
const doc = transaction.doc
|
||||||
const store = doc.store
|
const store = doc.store
|
||||||
@ -363,11 +363,9 @@ const cleanupTransactions = (transactionCleanups, i) => {
|
|||||||
subdocsRemoved.forEach(subdoc => subdoc.destroy())
|
subdocsRemoved.forEach(subdoc => subdoc.destroy())
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transactionCleanups.length <= i + 1) {
|
if (transactionCleanups.length <= ++i) {
|
||||||
doc._transactionCleanups = []
|
doc._transactionCleanups = []
|
||||||
doc.emit('afterAllTransactions', [doc, transactionCleanups])
|
doc.emit('afterAllTransactions', [doc, transactionCleanups])
|
||||||
} else {
|
|
||||||
cleanupTransactions(transactionCleanups, i + 1)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user