Fix types of event handlers in TaskExecutor
This commit is contained in:
parent
faf76ec76a
commit
fdfe356ded
@ -19,7 +19,7 @@ describe('TaskExecutor', () => {
|
|||||||
await te.wait()
|
await te.wait()
|
||||||
expect(results).toEqual([10, 5, 7])
|
expect(results).toEqual([10, 5, 7])
|
||||||
})
|
})
|
||||||
it.only('executes tasks in different order', async () => {
|
it('executes tasks in different order', async () => {
|
||||||
const results: number[] = []
|
const results: number[] = []
|
||||||
const te = new TaskExecutor<number>(2, async task => {
|
const te = new TaskExecutor<number>(2, async task => {
|
||||||
await delay(task)
|
await delay(task)
|
||||||
@ -36,7 +36,13 @@ describe('TaskExecutor', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('error handling', () => {
|
describe('error handling', () => {
|
||||||
|
it('does not fail on error', async () => {
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
it('triggers failure event on error', async () => {
|
||||||
|
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
@ -5,9 +5,9 @@ export interface ITask<T> {
|
|||||||
execute(): Promise<void>
|
execute(): Promise<void>
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ITaskEvents {
|
interface ITaskEventHandler {
|
||||||
success: void
|
success: () => void
|
||||||
failure: Error
|
failure: (err: Error) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ITaskExecutor<T> {
|
export interface ITaskExecutor<T> {
|
||||||
@ -15,10 +15,10 @@ export interface ITaskExecutor<T> {
|
|||||||
|
|
||||||
wait(): Promise<void>
|
wait(): Promise<void>
|
||||||
|
|
||||||
addListener<E extends keyof ITaskEvents>(
|
addListener<E extends keyof ITaskEventHandler>(
|
||||||
event: E, listener: (value: ITaskEvents[E]) => void): void
|
event: E, listener: ITaskEventHandler[E]): void
|
||||||
removeListener<E extends keyof ITaskEvents>(
|
removeListener<E extends keyof ITaskEventHandler>(
|
||||||
event: E, listener: (value: ITaskEvents[E]) => void): void
|
event: E, listener: ITaskEventHandler[E]): void
|
||||||
}
|
}
|
||||||
|
|
||||||
let counter = 0
|
let counter = 0
|
||||||
@ -34,12 +34,12 @@ export class TaskExecutor<T> implements ITaskExecutor<T> {
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
addListener<E extends keyof ITaskEvents>(
|
addListener<E extends keyof ITaskEventHandler>(
|
||||||
event: E, listener: (value: ITaskEvents[E]) => void): void {
|
event: E, listener: ITaskEventHandler[E]): void {
|
||||||
this.events.addListener(event, listener)
|
this.events.addListener(event, listener)
|
||||||
}
|
}
|
||||||
removeListener<E extends keyof ITaskEvents>(
|
removeListener<E extends keyof ITaskEventHandler>(
|
||||||
event: E, listener: (value: ITaskEvents[E]) => void): void {
|
event: E, listener: ITaskEventHandler[E]): void {
|
||||||
this.events.removeListener(event, listener)
|
this.events.removeListener(event, listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user