2.7 KiB
id, title
| id | title |
|---|---|
| notifyManager | notifyManager |
const notifyManager: object;
Defined in: packages/query-core/src/notifyManager.ts:144
Handles scheduling and batching callbacks in TanStack Query.
Type Declaration
batch()
readonly batch: <T>(callback) => 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
Returns
T
batchCalls()
readonly batchCalls: <T>(callback) => BatchCallsCallback<T>;
All calls to the wrapped function will be batched.
Type Parameters
T
T extends unknown[]
Parameters
callback
BatchCallsCallback<T>
Returns
BatchCallsCallback<T>
schedule()
schedule: (callback) => 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()
readonly setBatchNotifyFunction: (fn) => 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
Returns
void
Example
import { notifyManager } from '@tanstack/query-core'
import { batch } from 'solid-js'
notifyManager.setBatchNotifyFunction(batch)
setNotifyFunction()
readonly setNotifyFunction: (fn) => 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
Returns
void
setScheduler()
readonly setScheduler: (fn) => void;
Configures a custom callback that schedules when the next batch runs.
The default behavior is setTimeout(callback, 0).
Parameters
fn
ScheduleFunction
Returns
void
Example
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))