Da die Abrufmechanismen von TanStack Query agnostisch auf Promises basieren, können Sie buchstäblich jeden asynchronen Datenabruf-Client verwenden, einschließlich der nativen Browser-API fetch, graphql-request und mehr.
Der HttpClient ist ein leistungsfähiger und integrierter Teil von Angular, der folgende Vorteile bietet:
Da TanStack Query eine auf Promises basierende Bibliothek ist, müssen Observables vom HttpClient in Promises konvertiert werden. Dies kann mit den Funktionen lastValueFrom oder firstValueFrom aus rxjs erfolgen.
@Component({
// ...
})
class ExampleComponent {
private readonly http = inject(HttpClient)
readonly query = injectQuery(() => ({
queryKey: ['repoData'],
queryFn: () =>
lastValueFrom(
this.http.get('https://api.github.com/repos/tanstack/query'),
),
}))
}
@Component({
// ...
})
class ExampleComponent {
private readonly http = inject(HttpClient)
readonly query = injectQuery(() => ({
queryKey: ['repoData'],
queryFn: () =>
lastValueFrom(
this.http.get('https://api.github.com/repos/tanstack/query'),
),
}))
}
Da Angular sich in Richtung RxJS als optionaler Abhängigkeit entwickelt, ist zu erwarten, dass der HttpClient in Zukunft auch Promises unterstützen wird.
Die Unterstützung von Observables in TanStack Query für Angular ist geplant.
| Datenabruf-Client | Vorteile | Nachteile |
|---|---|---|
| Angular HttpClient | Funktionsreich und sehr gut in Angular integriert. | Observables müssen in Promises konvertiert werden. |
| Fetch | Native Browser-API, fügt also nichts zur Bundle-Größe hinzu. | Minimalistische API, der viele Funktionen fehlen. |
| Spezialisierte Bibliotheken wie graphql-request | Spezialisierte Funktionen für bestimmte Anwendungsfälle. | Wenn es keine Angular-Bibliothek ist, wird sie nicht gut in das Framework integriert. |