The following code outputs as follows:
1 sec delay, print "1",
1 sec delay, print "2",
1 sec delay, print "1",
1 sec delay, print "2"
How can it be modified to run like this:
1 sec delay, print "1", print "1",
1 sec delay, print "2", print "2"
I would like it to run so that both instances of the for loop begin executing at the same time. As each instance executes, they will encounter the first() function at the same time, then the second() function at the same time, thus printing in the order mentioned above.
Code:
import asyncio
async def first():
await asyncio.sleep(1)
return "1"
async def second():
await asyncio.sleep(1)
return "2"
async def main():
for i in range(2):
result = await first()
print(result)
result2 = await second()
print(result2)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
mainfunction? For instance, you could put two loops inmainthat print the result of each function call twice, and it would produce the exact behavior you're asking for. However, again, if you're working under any constraints, we need to know them in order to help.