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