소스 검색

fixed dispatching of end stage event

Gildas 7 년 전
부모
커밋
c7d093ba20
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      lib/single-file/single-file-core.js

+ 5 - 1
lib/single-file/single-file-core.js

@@ -220,8 +220,9 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					log("  -- ENDED   task =", task.action, "delay =", Date.now() - startTime);
 				}
 			});
+			let parallelTasksPromise;
 			if (STAGES[step].parallel) {
-				return await Promise.all(STAGES[step].parallel.map(task => {
+				parallelTasksPromise = await Promise.all(STAGES[step].parallel.map(task => {
 					let startTime;
 					if (DEBUG) {
 						startTime = Date.now();
@@ -235,11 +236,14 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					}
 					return promise;
 				}));
+			} else {
+				parallelTasksPromise = Promise.resolve();
 			}
 			this.onprogress(new ProgressEvent(STAGE_ENDED, { pageURL: this.options.url, step, frame }));
 			if (DEBUG) {
 				log("**** ENDED   STAGE", step, "****");
 			}
+			return parallelTasksPromise;
 		}
 
 		executeTask(task) {