process<T extends JSAny, R> method
Future<R?>
process<
T extends JSAny, R>( - ({bool next, R? result}) processor(
- T? result
)
)
Implementation
Future<R?> process<T extends JSAny, R>(
({bool next, R? result}) Function(T? result) processor) {
final completer = Completer<R?>();
onsuccess = (Event event) {
var request = event.target as IDBRequest;
var cursor = request.result as T?;
var (next: next, result: r) = processor(cursor);
if (!next) {
completer.completeSafe(r);
} else {
if (cursor.isA<IDBCursor>()) {
// ignore: invalid_runtime_check_with_js_interop_types
var iDBCursor = cursor as IDBCursor;
iDBCursor.continue_();
}
}
}.toJS;
onerror = (Event event) {
var request = event.target as IDBRequest;
var error = request.error;
if (error != null) {
completer.completeErrorSafe(error);
} else {
completer.completeErrorSafe("`IDBRequest` error!");
}
}.toJS;
return completer.future;
}