Future<File> file() { var completer = new Completer<File>(); _file( (value) { completer.complete(value); }, (error) { completer.completeError(error); }); return completer.future; }