TanStack
API Reference

notifyManager

ts
const notifyManager: object;

Defined in: packages/query-core/src/notifyManager.ts:154

Handles scheduling and batching callbacks in TanStack Query.

Type Declaration

batch()

ts
readonly batch: <T>(callback: () => T) => T;

Batches all updates scheduled inside the passed callback. This is mainly used internally to optimize query client updating. Batches can be nested; the queue is only flushed once the outermost batch call finishes. The return value of callback is passed through.

Type Parameters

T

T

Parameters

callback

() => T

The function to run in the batch.

Returns

T

The return value of callback.

batchCalls()

ts
readonly batchCalls: <T>(callback: BatchCallsCallback<T>) => BatchCallsCallback<T>;

All calls to the wrapped function will be batched.

Type Parameters

T

T extends unknown[]

Parameters

callback

BatchCallsCallback<T>

The function to wrap.

Returns

BatchCallsCallback<T>

A function that schedules a call to callback with the given arguments.

schedule()

ts
schedule: (callback: NotifyCallback) => void;

Schedules a function to be run on the next batch. By default, the batch is run with a setTimeout, but this can be configured via setScheduler.

Parameters

callback

NotifyCallback

Returns

void

setBatchNotifyFunction()

ts
readonly setBatchNotifyFunction: (fn: BatchNotifyFunction) => void;

Use this method to set a custom function to batch notifications together into a single tick. Framework adapters use this to plug in their own batching primitive, so that a single query update only triggers one re-render instead of one per subscriber.

Parameters

fn

BatchNotifyFunction

Receives a function that runs a batch of notifications and must call it.

Returns

void

Example

ts
import { notifyManager } from '@tanstack/query-core'
import { batch } from 'solid-js'

notifyManager.setBatchNotifyFunction(batch)

setNotifyFunction()

ts
readonly setNotifyFunction: (fn: NotifyFunction) => void;

Use this method to set a custom notify function. This can be used to for example wrap notifications with React.act while running tests.

Parameters

fn

NotifyFunction

Receives each notification callback and must call it.

Returns

void

setScheduler()

ts
readonly setScheduler: (fn: ScheduleFunction) => void;

Configures a custom callback that schedules when the next batch runs. The default behavior is setTimeout(callback, 0).

Parameters

fn

ScheduleFunction

Receives a callback that runs the next batch, and schedules it.

Returns

void

Example

ts
import { notifyManager } from '@tanstack/query-core'

// Schedule batches in the next microtask
notifyManager.setScheduler(queueMicrotask)

// Schedule batches before the next frame is rendered
notifyManager.setScheduler(requestAnimationFrame)

// Schedule batches some time in the future
notifyManager.setScheduler((cb) => setTimeout(cb, 10))