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