ComputedAsync<T> constructor

ComputedAsync<T>(
  1. Future<T> _compute(),
  2. List<Listenable> _dependencies, {
  3. String? debugLabel,
})

Implementation

ComputedAsync(
  this._compute,
  this._dependencies, {
  String? debugLabel,
}) : super(null, debugLabel: debugLabel) {
  // Initial computation
  _recompute();

  // Listen to dependencies
  for (final dep in _dependencies) {
    void listener() {
      _recompute();
    }

    _listeners.add(listener);
    dep.addListener(listener);
  }
}