(taskID: number)
| 231 | } |
| 232 | |
| 233 | private taskCompletion(taskID: number) { |
| 234 | return new Promise<any>((resolve, reject) => { |
| 235 | const eventSubscription = this.events().subscribe(event => { |
| 236 | if (event.type === PoolEventType.taskCompleted && event.taskID === taskID) { |
| 237 | eventSubscription.unsubscribe() |
| 238 | resolve(event.returnValue) |
| 239 | } else if (event.type === PoolEventType.taskFailed && event.taskID === taskID) { |
| 240 | eventSubscription.unsubscribe() |
| 241 | reject(event.error) |
| 242 | } else if (event.type === PoolEventType.terminated) { |
| 243 | eventSubscription.unsubscribe() |
| 244 | reject(Error("Pool has been terminated before task was run.")) |
| 245 | } |
| 246 | }) |
| 247 | }) |
| 248 | } |
| 249 | |
| 250 | public async settled(allowResolvingImmediately: boolean = false): Promise<Error[]> { |
| 251 | const getCurrentlyRunningTasks = () => flatMap(this.workers, worker => worker.runningTasks) |
no test coverage detected