TanStack
API Reference

QueriesObserver

Defined in: packages/query-core/src/queriesObserver.ts:61

A QueriesObserver watches an array of queries at once, exposing them as a single array of QueryObserverResults (or, when a combine option is given, as a combined value derived from that array). It manages one internal QueryObserver per query, and is the primitive that framework adapters (e.g. useQueries) build their hooks on top of.

Example

ts
const observer = new QueriesObserver(queryClient, [
  { queryKey: ['post', 1], queryFn: fetchPost },
  { queryKey: ['post', 2], queryFn: fetchPost },
])

const unsubscribe = observer.subscribe((result) => {
  console.log(result)
})

Extends

  • Subscribable<QueriesObserverListener>

Type Parameters

TCombinedResult

TCombinedResult = QueryObserverResult[]

Constructors

Constructor

ts
new QueriesObserver<TCombinedResult>(
   client: QueryClient,
   queries: QueryObserverOptions<any, any, any, any, any, never>[],
options?: QueriesObserverOptions<TCombinedResult>): QueriesObserver<TCombinedResult>;

Defined in: packages/query-core/src/queriesObserver.ts:75

Parameters

client

QueryClient

queries

QueryObserverOptions<any, any, any, any, any, never>[]

options?

QueriesObserverOptions<TCombinedResult>

Returns

QueriesObserver<TCombinedResult>

Overrides

ts
Subscribable<QueriesObserverListener>.constructor

Methods

destroy()

ts
destroy(): void;

Defined in: packages/query-core/src/queriesObserver.ts:111

Stops observing all queries: clears all listeners and destroys every underlying QueryObserver this observer manages.

Returns

void


getCurrentResult()

ts
getCurrentResult(): QueryObserverResult[];

Defined in: packages/query-core/src/queriesObserver.ts:216

Returns the most recently computed array of QueryObserverResults, one per observed query, in the same order as the queries passed to the constructor or setQueries.

Returns

QueryObserverResult[]

The current results.

Example

ts
const results = observer.getCurrentResult()
const data = results.map((result) => result.data)

getObservers()

ts
getObservers(): QueryObserver<unknown, Error, unknown, unknown, readonly unknown[]>[];

Defined in: packages/query-core/src/queriesObserver.ts:235

Returns the underlying QueryObserver instances this observer manages, in the same order as the queries passed to the constructor or setQueries.

Returns

QueryObserver<unknown, Error, unknown, unknown, readonly unknown[]>[]

The managed query observers.


getOptimisticResult()

ts
getOptimisticResult(queries: QueryObserverOptions<unknown, Error, unknown, unknown, readonly unknown[], never>[], combine: CombineFn<TCombinedResult> | undefined): [QueryObserverResult[], (r?: QueryObserverResult[]) => TCombinedResult, () => QueryObserverResult[]];

Defined in: packages/query-core/src/queriesObserver.ts:250

The QueriesObserver counterpart of QueryObserver#getOptimisticResult — computes the result for the given (already-defaulted) queries right now, synchronously. Called by framework adapters (e.g. useQueries) ahead of subscribing, returning a tuple of the raw per-query results, a function to compute the combined result from them, and a function to wrap the results for property-access tracking.

Parameters

queries

QueryObserverOptions<unknown, Error, unknown, unknown, readonly unknown[], never>[]

The defaulted options of the queries to compute the result for.

combine

The combine function used by the returned combineResult, if any.

CombineFn<TCombinedResult> | undefined

Returns

[QueryObserverResult[], (r?: QueryObserverResult[]) => TCombinedResult, () => QueryObserverResult[]]

A tuple of the per-query results, a function that computes the combined result, and a function that returns the results wrapped for property-access tracking.


getQueries()

ts
getQueries(): Query<unknown, Error, unknown, readonly unknown[]>[];

Defined in: packages/query-core/src/queriesObserver.ts:225

Returns the underlying Query instances currently being observed, in the same order as the queries passed to the constructor or setQueries.

Returns

Query<unknown, Error, unknown, readonly unknown[]>[]

The observed queries.


hasListeners()

ts
hasListeners(): boolean;

Defined in: packages/query-core/src/subscribable.ts:43

Returns true while at least one listener is registered, false once they have all unsubscribed.

Returns

boolean

true if at least one listener is registered.

Inherited from

ts
Subscribable.hasListeners

setQueries()

ts
setQueries(queries: QueryObserverOptions<unknown, Error, unknown, unknown, readonly unknown[], never>[], options?: QueriesObserverOptions<TCombinedResult>): void;

Defined in: packages/query-core/src/queriesObserver.ts:133

Replaces the set of queries being observed. Existing QueryObservers are reused for queries that match an already-observed query hash; observers for queries that are no longer present are destroyed, and new observers are created and subscribed to for newly added queries.

Parameters

queries

QueryObserverOptions<unknown, Error, unknown, unknown, readonly unknown[], never>[]

The options of the queries to observe.

options?

QueriesObserverOptions<TCombinedResult>

Replaces the observer's options, e.g. its combine function.

Returns

void

Example

ts
observer.setQueries([
  { queryKey: ['post', 1], queryFn: fetchPost },
  { queryKey: ['post', 3], queryFn: fetchPost },
])

subscribe()

ts
subscribe(listener: QueriesObserverListener): () => void;

Defined in: packages/query-core/src/subscribable.ts:28

Registers a listener to be called on every update this object notifies about. Returns a function that removes the listener again — call it to stop listening. The base class never drops a listener on its own, though some subclasses clear all of theirs in destroy().

Parameters

listener

QueriesObserverListener

Called on each update, with whatever the subclass passes to its subscribers.

Returns

A function that removes the listener.

ts
(): void;
Returns

void

Example

ts
const unsubscribe = subscribable.subscribe(() => {
  // react to the update
})

unsubscribe()

Inherited from

ts
Subscribable.subscribe