Suppose that I have an async for loop of this form:
```async for x in f():
await g(x)```
In this case, the program will wait until g(x) is finished before going on to the next iteration of the for loop. What if I want to do it in parallell? I know that one can use asyncio.gather to run two async tasks in parallell, and is there then some way to run g(x) in parallel with the rest of the loop? Note that I can't simply use asyncio.gather on "all elements of f()", whatever that would mean, because I don't necessarily have all those elements from the start.