43 ms·
Sounds like multiprocessing.Pool.imap and imap_unordered? When dealing with io you also have async/await equivalent iterators like asyncio.as_completed().
by Too 7y ago
Sounds like multiprocessing.Pool.imap and imap_unordered? When dealing with io you also have async/await equivalent iterators like asyncio.as_completed().
- b2gills 7y agoRaku has `await` but it doesn't need `async`. sub foo ( Int \n where 1..100 ) { # ___ start is a prefix operator that creates a Promise # V start { sleep n.rand; (1..n).pick } } my $result = foo(10); say $result.status; # Planned say await $result; # 6 (after a delay) # this is nearly identical to foo above sub bar ( Int \n where 1..100 ) { Promise.in( n.rand ).then({ (1..n).pick }) } (Note that `start` does not need a block unless you are grouping more than one statement as I have above.) There are combinators like `Promise.allof` and `Promise.anyof`. You usually don't need to use `Promise.allof`, because you can use `await` on a list. my @promises = Promise.in(1.rand) xx 10; my @results = await @promises; (Note that the left side of `xx` is _thunky_ so there are ten different Promises with ten different random wait times.) --- You should see the `react`/`supply` and `whenever` feature.