Skip to content

batch

Group multiple signal updates to prevent redundant effects.

/**
* Group multiple signal updates into a single effect flush.
* @param callback Function containing batched signal updates.
* @returns The result of the callback.
*/
batch<T>(callback: () => T): T

Batch groups multiple signal updates together so that effects only run once after all updates. Use this to avoid unnecessary recomputation when updating several signals at once.

import { signal, batch } from '@hellajs/core';
// Create signals for form state
const username = signal('');
const email = signal('');
const isSubmitting = signal(false);
const isSuccess = signal(false);
function submitForm() {
batch(() => {
isSubmitting.set(true);
// Simulate async form submission
setTimeout(() => {
batch(() => {
isSubmitting.set(false);
isSuccess.set(true);
username.set('');
email.set('');
});
}, 1000);
});
}