code: def _execute_callback_async(self, callback, data):
          
          if asyncio.iscoroutine(callback):
              asyncio.ensure_future(
                  callback(rtm_client=self, web_client=self._web_client, data=data)
              )
          else:
              asyncio.ensure_future(
                  asyncio.coroutine(callback)(
                      rtm_client=self, web_client=self._web_client, data=data
                  )
              )
docs: Execute the callback asynchronously.
  
          If the callback is not a coroutine, convert it.
  
          Note: The WebClient passed into the callback is running in "async" mode.
          This means all responses will be futures.