'Emit an event by name with arguments passed as keyword args,
until the first non-``None`` response is received. This
method prevents subsequent handlers from being invoked.
>>> handler, response = emitter.emit_until_response(
\'my-event.service.operation\', arg1=\'one\', arg2=\'two\')
:rtype: tuple
:return: The first (handler, response) tuple where the response
is not ``None``, otherwise (``None``, ``None``).'

def emit_until_response(self, event_name, **kwargs):

    responses = self._emit(event_name, kwargs, stop_on_response=True)
    if responses:
        return responses[(-1)]
    else:
        return (None, None)
