Transform a coroutine that uses Deferreds into a Deferred itself.

Coroutine functions return a coroutine object, similar to how generators work. This function turns that coroutine into a Deferred, meaning that it can be used in regular Twisted code. For example:

   import treq
   from twisted.internet.defer import ensureDeferred
   from twisted.internet.task import react

   async def crawl(pages):
       results = {}
       for page in pages:
           results[page] = await treq.content(await treq.get(page))
       return results

   def main(reactor):
       pages = [
           "http://localhost:8080"
       ]
       d = ensureDeferred(crawl(pages))
       d.addCallback(print)
       return d

   react(main)
API Documentation for Twisted, generated by pydoctor at 2016-09-15 00:53:01.