scheduleTransition<T> function
Schedules a non-urgent transition task returning a SchedulerTask handle.
Similar to startTransition, but provides the SchedulerTask token allowing cancellation and awaiting completion.
final task = scheduleTransition(() {
filteredList.value = computeFilter(query.value);
});
Implementation
SchedulerTask<T> scheduleTransition<T>(FutureOr<T> Function() update) {
_pendingTransitionCount.value++;
_isTransitionPending.value = true;
return BloomScheduler.schedule<T>(() async {
try {
return await update();
} finally {
final remaining = _pendingTransitionCount.value - 1;
_pendingTransitionCount.value = remaining < 0 ? 0 : remaining;
_isTransitionPending.value = _pendingTransitionCount.value > 0;
}
}, priority: TaskPriority.low);
}