requestRoutingInformation ({
    routingContext = {},
    databaseName = null,
    sessionContext = {},
    onError,
    onCompleted
  }) {
    const observer = new RouteObserver({
      onProtocolError: this._onProtocolError,
      onError,
      onCompleted
    })
    const bookmarks = sessionContext.bookmarks || Bookmarks.empty()
    this.write(
      RequestMessage.route(routingContext, bookmarks.values(), databaseName),
      observer,
      true
    )

    return observer
  }
Request routing information

@param {Object} param -
@param {object} param.routingContext The routing context used to define the routing table.
 Multi-datacenter deployments is one of its use cases
@param {string} param.databaseName The database name
@param {Bookmarks} params.sessionContext.bookmarks The bookmarks used for requesting the routing table
@param {function(err: Error)} param.onError
@param {function(RawRoutingTable)} param.onCompleted
@returns {RouteObserver} the route observer