delete method

  1. @override
Future<void> delete(
  1. bool test(
    1. T value
    )
)
override

Remove elements in the collection that are true in test.

Implementation

@override
Future<void> delete(bool Function(T value) test) async {
  if (_saveCompleter != null) {
    return saving;
  }
  _saveCompleter = Completer<void>();
  try {
    await onDelete();
    await Future.wait(
      mapAndRemoveEmpty((item) {
        if (!test.call(item)) {
          return null;
        }
        return item.delete();
      }),
    );
    await onDidDelete();
    _saveCompleter?.complete();
    _saveCompleter = null;
  } catch (e) {
    _saveCompleter?.completeError(e);
    _saveCompleter = null;
  } finally {
    _saveCompleter?.complete();
    _saveCompleter = null;
  }
}