It might be useful to yield the id and the result if any. Then you could externally pair results with calls to handle processing the results. It would be be interesting to think about how we could allow people to compose what properties they wanted to iterate over in the async results. That way they could maybe map inputs with outputs (IE an element list goes in, a list of True/False comes out, based on how they pair you fan out over the false ones). 

```
         |
        /|\
        \|/
         |
        /|\
        \|/
         |

yield task.id, task.result
yield task.id, None
```