📅  最后修改于: 2023-12-03 14:55:06.180000             🧑  作者: Mango
最近,一些 Angular 开发者在创建 HttpHandler 的实例时遇到了一个问题:无法创建抽象类 HttpHandler 的实例。 这是什么原因呢?如何解决?
Angular 中的 HttpHandler 是一个抽象类,它不能直接实例化。相反,你应该使用 Angular 中提供的具体子类,如 HttpClientXsrfModule、HttpBackend、HttpInterceptors 等。如果你尝试使用 new 关键字直接实例化 HttpHandler,则会发生类似下面的错误:
Cannot create an instance of an abstract class.
Angular 中提供了多个具体的 HttpHandler 子类,你应该使用它们的构造函数来创建实例。
例如,使用 HttpBackend 构造函数创建实例:
import { HttpBackend } from '@angular/common/http';
const httpBackend = new HttpBackend();
在 Angular 中,依赖注入是一种常见的创建实例的方式。你可以在组件或 service 中声明 HttpHandler 实例的依赖,并通过依赖注入来获取实例。
例如,在组件中注入 HttpBackend:
import { HttpBackend } from '@angular/common/http';
import { Component } from '@angular/core';
@Component({
selector: 'app-my-component',
templateUrl: './my.component.html',
})
export class MyComponent {
constructor(private httpBackend: HttpBackend) {}
}
当你需要使用 HttpHandler 时,你应该使用具体的子类来创建实例,或者利用依赖注入获取实例。总之,不要尝试直接实例化 HttpHandler 类。