mirror of https://github.com/grafana/grafana
Chore: Remove CancelablePromise (#89564)
* Remove CancelablePromise.ts as it wasn't used in anywhere * Move cancelable-promise to the place where it is usedpull/89995/head
parent
177747ecda
commit
ddea4ba8b2
@ -1,31 +0,0 @@ |
||||
// https://github.com/facebook/react/issues/5465
|
||||
|
||||
export interface CancelablePromise<T> { |
||||
promise: Promise<T>; |
||||
cancel: () => void; |
||||
} |
||||
|
||||
export interface CancelablePromiseRejection { |
||||
isCanceled: boolean; |
||||
} |
||||
|
||||
export function isCancelablePromiseRejection(promise: unknown): promise is CancelablePromiseRejection { |
||||
return typeof promise === 'object' && promise !== null && 'isCanceled' in promise; |
||||
} |
||||
|
||||
export const makePromiseCancelable = <T>(promise: Promise<T>): CancelablePromise<T> => { |
||||
let hasCanceled_ = false; |
||||
|
||||
const wrappedPromise = new Promise<T>((resolve, reject) => { |
||||
const canceledPromiseRejection: CancelablePromiseRejection = { isCanceled: true }; |
||||
promise.then((val) => (hasCanceled_ ? reject(canceledPromiseRejection) : resolve(val))); |
||||
promise.catch((error) => (hasCanceled_ ? reject(canceledPromiseRejection) : reject(error))); |
||||
}); |
||||
|
||||
return { |
||||
promise: wrappedPromise, |
||||
cancel() { |
||||
hasCanceled_ = true; |
||||
}, |
||||
}; |
||||
}; |
Loading…
Reference in new issue