lookupRoutingTableOnRouter (session, database, routerAddress, impersonatedUser) {
    return session._acquireConnection(connection => {
      return this._requestRawRoutingTable(
        connection,
        session,
        database,
        routerAddress,
        impersonatedUser
      ).then(rawRoutingTable => {
        if (rawRoutingTable.isNull) {
          return null
        }
        return RoutingTable.fromRawRoutingTable(
          database,
          routerAddress,
          rawRoutingTable
        )
      })
    })
  }
Try to fetch new routing table from the given router.
@param {Session} session the session to use.
@param {string} database the database for which to lookup routing table.
@param {ServerAddress} routerAddress the URL of the router.
@param {string} impersonatedUser The impersonated user
@return {Promise<RoutingTable>} promise resolved with new routing table or null when connection error happened.