( promise: Promise<T>, then: (result: T) => void, )
| 634 | } |
| 635 | |
| 636 | export function thenIfNotDisposed<T>( |
| 637 | promise: Promise<T>, |
| 638 | then: (result: T) => void, |
| 639 | ): IDisposable { |
| 640 | let disposed = false; |
| 641 | void promise.then((result) => { |
| 642 | if (disposed) return; |
| 643 | then(result); |
| 644 | }); |
| 645 | return toDisposable(() => { |
| 646 | disposed = true; |
| 647 | }); |
| 648 | } |
| 649 | |
| 650 | export function thenRegisterOrDispose<T extends IDisposable>( |
| 651 | promise: Promise<T>, |
no test coverage detected