| import { createErrorClass } from './createErrorClass'; |
| |
| export interface UnsubscriptionError extends Error { |
| readonly errors: any[]; |
| } |
| |
| export interface UnsubscriptionErrorCtor { |
| /** |
| * @deprecated Internal implementation detail. Do not construct error instances. |
| * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 |
| */ |
| new (errors: any[]): UnsubscriptionError; |
| } |
| |
| /** |
| * An error thrown when one or more errors have occurred during the |
| * `unsubscribe` of a {@link Subscription}. |
| */ |
| export const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass( |
| (_super) => |
| function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) { |
| _super(this); |
| this.message = errors |
| ? `${errors.length} errors occurred during unsubscription: |
| ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` |
| : ''; |
| this.name = 'UnsubscriptionError'; |
| this.errors = errors; |
| } |
| ); |