Future<T> add(FutureOr<T> Function() task) { FutureOr<T> wrapper(void _) => task(); return _current = _current.then(wrapper, onError: wrapper); }