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