execute method

Future<ResultSet> execute ()

Executes the query.

Returns the ResultSet object representing the query result.

Implementation

Future<ResultSet> execute() async {
  this.options["queryId"] = queryId;

  if (!_stored && tokens.length > 0) {
    _stored = await _channel.invokeMethod('storeQuery', this);
  }

  try {
    final List<dynamic> resultSet =
        await _channel.invokeMethod('executeQuery', this);

    List<Result> results = List<Result>();
    for (dynamic result in resultSet) {
      Result newResult = Result();
      newResult.setMap(result["map"]);
      newResult.setList(result["list"]);
      results.add(newResult);
    }

    return ResultSet(results);
  } on PlatformException {
    // Remove all listeners on error
    tokens.keys.forEach((token) {
      removeChangeListener(token);
    });

    rethrow;
  }
}