delete method
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;
}
}