@cloudbase/utilities
Version:
cloudbase javascript sdk utilities
21 lines (18 loc) • 466 B
text/typescript
export default class AbortController {
listeners: Array<CallableFunction> = []
signal = {
aborted: false,
addEventListener: (e: string, f: CallableFunction) => {
if (e === 'abort') {
this.listeners.push(f)
}
},
}
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
constructor() {}
abort() {
if (this.signal.aborted) return
this.signal.aborted = true
this.listeners.forEach(f => f())
}
}