例子:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export abstract class HttpErrorHandler{
abstract handleError(
): void;
}
@Injectable({
providedIn: 'root',
})
export class UnKnownHandler {
handleError(){
console.log('UnknownHandler works');
}
}
@Injectable({
providedIn: 'root',
})
export class BadGatewayHandler {
handleError(){
console.log('BadGatewayHandlers works');
}
}
app.module.ts里的providers声明:
运行时报错:
main.ts:12 Error: Cannot instantiate cyclic dependency! HttpErrorHandler
at throwCyclicDependencyError (core.js:8104)
at R3Injector.hydrate (core.js:17203)
at R3Injector.get (core.js:16957)
at injectInjectorOnly (core.js:941)
at ɵɵinject (core.js:951)
at Object.factory (core.js:17383)
at R3Injector.hydrate (core.js:17207)
at R3Injector.get (core.js:16957)
at injectInjectorOnly (core.js:941)
at ɵɵinject (core.js:951)
hydrate(token, record) {
if (record.value === CIRCULAR) {
throwCyclicDependencyError(stringify(token));
}
else if (record.value === NOT_YET) {
record.value = CIRCULAR;
record.value = (/** @type {?} */ (record.factory))();
}
if (typeof record.value === 'object' && record.value && hasOnDestroy(record.value)) {
this.onDestroy.add(record.value);
}
return (/** @type {?} */ (record.value));
}
此处进行的报错:
更多Jerry的原创文章,尽在:“汪子熙”: