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()
|
||||
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 te = new TaskExecutor<number>(2, async task => {
|
||||
await delay(task)
|
||||
@ -36,7 +36,13 @@ describe('TaskExecutor', () => {
|
||||
})
|
||||
|
||||
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>
|
||||
}
|
||||
|
||||
interface ITaskEvents {
|
||||
success: void
|
||||
failure: Error
|
||||
interface ITaskEventHandler {
|
||||
success: () => void
|
||||
failure: (err: Error) => void
|
||||
}
|
||||
|
||||
export interface ITaskExecutor<T> {
|
||||
@ -15,10 +15,10 @@ export interface ITaskExecutor<T> {
|
||||
|
||||
wait(): Promise<void>
|
||||
|
||||
addListener<E extends keyof ITaskEvents>(
|
||||
event: E, listener: (value: ITaskEvents[E]) => void): void
|
||||
removeListener<E extends keyof ITaskEvents>(
|
||||
event: E, listener: (value: ITaskEvents[E]) => void): void
|
||||
addListener<E extends keyof ITaskEventHandler>(
|
||||
event: E, listener: ITaskEventHandler[E]): void
|
||||
removeListener<E extends keyof ITaskEventHandler>(
|
||||
event: E, listener: ITaskEventHandler[E]): void
|
||||
}
|
||||
|
||||
let counter = 0
|
||||
@ -34,12 +34,12 @@ export class TaskExecutor<T> implements ITaskExecutor<T> {
|
||||
) {
|
||||
}
|
||||
|
||||
addListener<E extends keyof ITaskEvents>(
|
||||
event: E, listener: (value: ITaskEvents[E]) => void): void {
|
||||
addListener<E extends keyof ITaskEventHandler>(
|
||||
event: E, listener: ITaskEventHandler[E]): void {
|
||||
this.events.addListener(event, listener)
|
||||
}
|
||||
removeListener<E extends keyof ITaskEvents>(
|
||||
event: E, listener: (value: ITaskEvents[E]) => void): void {
|
||||
removeListener<E extends keyof ITaskEventHandler>(
|
||||
event: E, listener: ITaskEventHandler[E]): void {
|
||||
this.events.removeListener(event, listener)
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user