tal vez alguien pueda ayudarme: he creado mi primer paquete Angular. El paquete en sí tiene que proporcionar diferentes servicios para realizar solicitudes HTTP a un servidor y devolver los resultados.
Sin embargo, al importar el servicio, la página web deja de mostrarse y aparece un mensaje de error:
core.mjs:6484 ERROR Error: ASSERTION ERROR: token must be defined [Expected=> null != undefined <=Actual] at throwError (core.mjs:326) at assertDefined (core.mjs:322) at bloomHashBitOrFactory (core.mjs:3591) at getOrCreateInjectable (core.mjs:3379) at Module.ɵɵdirectiveInject (core.mjs:14392) at NodeInjectorFactory.AppComponent_Factory [as factory] (app.component.ts:10) at getNodeInjectable (core.mjs:3556) at instantiateRootComponent (core.mjs:10159) at createRootComponent (core.mjs:12259) at ComponentFactory.create (core.mjs:21580)Mi servicio:
// imports ... /** * DoctorService */ @Injectable({ providedIn: "root" }) export class DoctorService { constructor(private readonly httpClient: HttpClient) { } /** * Returns a doctor by a given uuid. * * @param uuid * @return Promise<Doctor> */ public async getDoctorByUUID(uuid: string): Promise<Doctor> { const uuidRegExp = new RegExp(/[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}/); if (!uuidRegExp.test(uuid)) { console.error("UUID does not have a valid format. It needs to be in a 8-4-4-4-12 digit pattern.") return new Promise<Doctor>(() => { return []; }); } const httpParams: HttpParams = new HttpParams(); httpParams.set("module", "mydoc"); httpParams.set("sektion", "show_doctor"); httpParams.set("uuid", uuid); httpParams.set("return", "json"); const request = this.httpClient.get<Doctor>(API_BASE_URL, { params: httpParams }); return firstValueFrom(request); } }Componente que utiliza el Servicio :
import {Component} from '@angular/core'; import {DoctorService} from "my-doc-util/src/lib/services/doctor-service/doctor.service"; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'angular-testing'; constructor(private readonly doctorService: DoctorService) { } }He experimentado exactamente el mismo error (angular 11)
No sé si es por lo mismo pero en mi caso resultó que el componente tenía una entrada sin inicializar.