code: def register_iq_response_callback(self, from_, id_, cb):
          
  
          self._iq_response_map.add_listener(
              (from_, id_),
              callbacks.OneshotAsyncTagListener(cb, loop=self._loop)
          )
          self._logger.debug("iq response callback registered: from=%r, id=%r",
                             from_, id_)
docs: Register a callback function `cb` to be called when a IQ stanza with
          type ``result`` or ``error`` is recieved from the
          :class:`~aioxmpp.JID` `from_` with the id `id_`.
  
          The callback is called at most once.
  
          .. note::
  
             In contrast to :meth:`register_iq_response_future`, errors which
             occur on a level below XMPP stanzas cannot be caught using a
             callback.
  
             If you need notification about other errors and still want to use
             callbacks, use of a future with
             :meth:`asyncio.Future.add_done_callback` is recommended.