# QueriesObserver

Defined in: [packages/query-core/src/queriesObserver.ts:61](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L61)

A `QueriesObserver` watches an array of queries at once, exposing them as
a single array of `QueryObserverResult`s (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`](../type-aliases/QueryObserverResult.md)[]

## 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](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L75)

#### Parameters

##### client

[`QueryClient`](QueryClient.md)

##### queries

[`QueryObserverOptions`](../interfaces/QueryObserverOptions.md)\<`any`, `any`, `any`, `any`, `any`, `never`\>[]

##### options?

[`QueriesObserverOptions`](../interfaces/QueriesObserverOptions.md)\<`TCombinedResult`\>

#### Returns

`QueriesObserver`\<`TCombinedResult`\>

#### Overrides

```ts
Subscribable<QueriesObserverListener>.constructor
```

## Methods

### destroy()

```ts
destroy(): void;
```

Defined in: [packages/query-core/src/queriesObserver.ts:111](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L111)

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](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L216)

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

#### Returns

[`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[]

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](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L235)

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

#### Returns

[`QueryObserver`](QueryObserver.md)\<`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](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L250)

The `QueriesObserver` counterpart of [QueryObserver#getOptimisticResult](QueryObserver.md#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`](../interfaces/QueryObserverOptions.md)\<`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`](../type-aliases/QueryObserverResult.md)[], (`r?`: [`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[]) => `TCombinedResult`, () => [`QueryObserverResult`](../type-aliases/QueryObserverResult.md)[]\]

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](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L225)

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

#### Returns

[`Query`](Query.md)\<`unknown`, `Error`, `unknown`, readonly `unknown`[]\>[]

The observed queries.

***

### hasListeners()

```ts
hasListeners(): boolean;
```

Defined in: [packages/query-core/src/subscribable.ts:43](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L43)

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](https://github.com/TanStack/query/blob/main/packages/query-core/src/queriesObserver.ts#L133)

Replaces the set of queries being observed. Existing `QueryObserver`s
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`](../interfaces/QueryObserverOptions.md)\<`unknown`, `Error`, `unknown`, `unknown`, readonly `unknown`[], `never`\>[]

The options of the queries to observe.

##### options?

[`QueriesObserverOptions`](../interfaces/QueriesObserverOptions.md)\<`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](https://github.com/TanStack/query/blob/main/packages/query-core/src/subscribable.ts#L28)

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
```
