batch.ts
Назначение файла
Модуль предоставляет функцию batch(), которая объединяет несколько реактивных изменений в один пакет выполнения.
Общая информация
Когда внутри одного действия нужно обновить несколько атомов, batch() откладывает запуск эффектов до завершения callback-функции. Это позволяет избежать промежуточных состояний и лишних уведомлений наблюдателей.
Концептуальная архитектура
batch() является тонкой публичной оберткой над RUNTIME.batch(). Во время выполнения runtime временно ставит на паузу очереди sync-, async- и microtask-задач, а затем возобновляет их после завершения действия.
Описание публичного API
batch<T>(action: () => T): T
action: функция, внутри которой выполняются несколько обновлений.- Возвращает результат выполнения
action. - Гарантирует отложенное выполнение реактивных эффектов до конца batch-блока.
Примеры использования
ts
import { atom, batch, effect } from '@nrgyjs/core';
const a = atom(1);
const b = atom(2);
effect([a, b], ([x, y]) => {
console.log(x + y);
});
batch(() => {
a.set(10);
b.set(20);
});