"Parallele" Abfragen sind Abfragen, die parallel, d.h. gleichzeitig ausgeführt werden, um die Abrufkongruenz zu maximieren.
Wenn sich die Anzahl der parallelen Abfragen nicht ändert, ist die Verwendung paralleler Abfragen kein zusätzlicher Aufwand. Verwenden Sie einfach beliebig viele der TanStack Query-Funktionen injectQuery und injectInfiniteQuery nebeneinander!
export class AppComponent {
// The following queries will execute in parallel
usersQuery = injectQuery(() => ({ queryKey: ['users'], queryFn: fetchUsers }))
teamsQuery = injectQuery(() => ({ queryKey: ['teams'], queryFn: fetchTeams }))
projectsQuery = injectQuery(() => ({
queryKey: ['projects'],
queryFn: fetchProjects,
}))
}
export class AppComponent {
// The following queries will execute in parallel
usersQuery = injectQuery(() => ({ queryKey: ['users'], queryFn: fetchUsers }))
teamsQuery = injectQuery(() => ({ queryKey: ['teams'], queryFn: fetchTeams }))
projectsQuery = injectQuery(() => ({
queryKey: ['projects'],
queryFn: fetchProjects,
}))
}
TanStack Query bietet injectQueries, mit dem Sie dynamisch beliebig viele Abfragen parallel ausführen können.
injectQueries akzeptiert ein options object mit einem queries key, dessen Wert ein array von query objects ist. Es gibt ein array von query results zurück.
export class AppComponent {
users = signal<Array<User>>([])
// Please note injectQueries is under development and this code does not work yet
userQueries = injectQueries(() => ({
queries: users().map((user) => {
return {
queryKey: ['user', user.id],
queryFn: () => fetchUserById(user.id),
}
}),
}))
}
export class AppComponent {
users = signal<Array<User>>([])
// Please note injectQueries is under development and this code does not work yet
userQueries = injectQueries(() => ({
queries: users().map((user) => {
return {
queryKey: ['user', user.id],
queryFn: () => fetchUserById(user.id),
}
}),
}))
}