createComputedAsync<S> method
FutureSignal<S>
createComputedAsync<S>(
- Future<
S> fn(), { - S? initialValue,
- String? debugLabel,
- List<
ReadonlySignal> dependencies = const [], - bool lazy = true,
Async Computed is syntax sugar around FutureSignal.
Inspired by computedAsync from Angular NgExtension.
computedAsync takes a callback
function to compute the value
of the signal. This callback is converted into a Computed signal.
final movieId = signal('id');
late final movie = computedAsync(() => fetchMovie(movieId()));
It is important that signals are called before any async gaps with await.
Any signal that is read inside the callback will be tracked as a dependency and the computed signal will be re-evaluated when any of the dependencies change.
Implementation
FutureSignal<S> createComputedAsync<S>(
Future<S> Function() fn, {
S? initialValue,
String? debugLabel,
List<ReadonlySignal<dynamic>> dependencies = const [],
bool lazy = true,
}) {
return _bindLocal(computedAsync<S>(
fn,
dependencies: dependencies,
initialValue: initialValue,
debugLabel: debugLabel,
lazy: lazy,
));
}