Manifesto
Make a supply of the results of Promises
Synopsis
A different version of the old 'sleep sort'
use Manifesto;
my $manifesto = Manifesto.new;
for (^10).pick(*).map( -> $i { Promise.in($i + 0.5).then({ $i })}) -> $p {
$manifesto.add-promise($p);
}
my $channel = Channel.new;
react {
whenever $manifesto -> $v {
$channel.send: $v;
}
whenever $manifesto.empty {
$channel.close;
done;
}
}
say $channel.list;
Description
This manages a collection of Promise objects and provides a Supply
of the result of the kept Promises.
This is useful to aggregate a number of Promises to a single stream
of results, which may then be used in, a react or supply block
or otherwise tapped.
Installation
Assuming you have a working installation of Rakudo installed with zef you should be able to do either:
zef install Manifesto
# or from a local checkout
zef install .
Other equally capable installers may become available in the future.
Support
This is so simple I'm not sure there is much scope for many bugs, but
if you have any questions, suggestions, patches or whatever please send
them via GitHub
Copyright and Licence
© Jonathan Stowe 2016 - 2021
This is free software, the terms are described in the LICENCE file in this repository.