code: def imap_unordered_async(self, func, iterable, chunksize=None, callback=None):
          
          apply_result = ApplyResult(callback=callback)
          collector = UnorderedResultCollector(apply_result)
          self._create_sequences(func, iterable, chunksize, collector)
          return apply_result
docs: A variant of the imap_unordered() method which returns an
          ApplyResult object that provides an iterator (next
          method(timeout) available).
  
          If callback is specified then it should be a callable which
          accepts a single argument. When the resulting iterator becomes
          ready, callback is applied to it (unless the call
          failed). callback should complete immediately since otherwise
          the thread which handles the results will get blocked.