toFuture method
Implementation
Future<JSAny?> toFuture() {
final completer = Completer<JSAny?>();
late void Function() cleanup;
void success(Event _) {
if (!completer.isCompleted) {
completer.complete(result);
}
cleanup();
}
void fail(Event _) {
if (!completer.isCompleted) {
completer.completeError(error ?? 'IDBRequest error');
}
cleanup();
}
final successJS = success.toJS;
final failJS = fail.toJS;
cleanup = () {
removeEventListener('success', successJS);
removeEventListener('error', failJS);
};
addEventListener('success', successJS);
addEventListener('error', failJS);
return completer.future;
}