Bläddra i källkod

Fix priority callback

Garrett Johnson 5 år sedan
förälder
incheckning
2cd7ec9ab5
2 ändrade filer med 4 tillägg och 0 borttagningar
  1. 1 0
      src/utilities/PriorityQueue.js
  2. 3 0
      test/PriorityQueue.test.js

+ 1 - 0
src/utilities/PriorityQueue.js

@@ -82,6 +82,7 @@ class PriorityQueue {
 			currJobs ++;
 			const item = items.pop();
 			const callback = callbacks.get( item );
+			callbacks.delete( item );
 			callback( item )
 				.then( () => {
 

+ 3 - 0
test/PriorityQueue.test.js

@@ -45,10 +45,12 @@ describe( 'PriorityQueue', () => {
 		queue.add( { priority : 8 }, cb );
 		queue.add( { priority : 2 }, cb );
 		queue.add( { priority : 1 }, cb );
+		expect( queue.items.length ).toEqual( queue.callbacks.size );
 
 		await nextTick();
 
 		expect( result ).toEqual( [ 8, 6, 4, 3, 2, 1, 0 ] );
+		expect( queue.items.length ).toEqual( queue.callbacks.size );
 
 	} );
 
@@ -79,6 +81,7 @@ describe( 'PriorityQueue', () => {
 
 		queue.remove( D );
 		expect( queue.items ).toEqual( [] );
+		expect( queue.items.length ).toEqual( queue.callbacks.size );
 
 	} );