3 ms·
it would be useful if your code has to execute async code and await it's result from within a view. For example: create 10 tasks and return await asyncio.gather
by nurettin 6y ago
it would be useful if your code has to execute async code and await it's result from within a view. For example: create 10 tasks and return await asyncio.gather(*tasks) as json.
- FreeHugs 6y agoI don't know much about Python's async tools, but why couldn't that be done in a non-async view? In pseudo code I would think it would look like this: def my_view(request): name = async_get_name() // returns a promise city = async_get_city() // returns a promise waitUntilResolved(name,city) return HttpResponse('Hello '+name+' from '+city)
- nurettin 6y agoIt could be done with anything, but async view lets other code execute while it is waiting for IO, what does waitUntilResolved do?
- FreeHugs 6y agowaitUntilResolved() would wait until the promises are resolved and of course let other code execute meanwhile.
- nurettin 6y agoThat's an awesome function. Is it multiprocess?
- FreeHugs 6y agoIt was pseudocode. If a function like this exists, it would just sleep until the given promises are resolved. I don't see how that is realted to the term "multiprocess".
- nurettin 6y agoWell I don't really see how it can exist, do non-blocking io and wait for promises while performing a sleep. So the only way left is multiprocess.
- macNchz 6y agoIt sounds like your waitUntilResolved() function is effectively asyncio.gather(), which due to the nature of Python’s async implementation is not something that could be used in a Django view prior to this release.