소스 검색

Fix priority callback

Garrett Johnson 5 년 전
부모
커밋
2cd7ec9ab5
2개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  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 );
 
 	} );