updates the async value while cancelling previous
Future<void> updateAsync(Future<T> value) async { await _cancel(); await _updateAsync(value); }