31 lines
972 B
Plaintext
31 lines
972 B
Plaintext
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;
|
|
}
|
|
);
|