IO::Async::Future - use Future with IO::Async
IO::Async::Future
use IO::Async::Loop; my $loop = IO::Async::Loop->new; my $future = $loop->new_future; $loop->watch_time( after => 3, code => sub { $future->done( "Done" ) } ); print $future->get, "\n";
This subclass of Future stores a reference to the IO::Async::Loop instance that created it, allowing the await method to block until the Future is ready. These objects should not be constructed directly; instead the new_future method on the containing Loop should be used.
await
new_future
For a full description on how to use Futures, see the Future documentation.
New IO::Async::Future objects should be constructed by using the following methods on the Loop. For more detail see the IO::Async::Loop documentation.
Loop
$future = $loop->new_future
Returns a new pending Future.
$future = $loop->delay_future( %args )
Returns a new Future that will become done at a given time.
$future = $loop->timeout_future( %args )
Returns a new Future that will become failed at a given time.
$loop = $future->loop
Returns the underlying IO::Async::Loop object.
$future->done_later( @result )
A shortcut to calling the done method in a later idle watch on the underlying Loop object. Ensures that a returned Future object is not ready immediately, but will wait for the next IO round.
done
later
Like done, returns $future itself to allow easy chaining.
$future
$future->fail_later( $exception, @details )
A shortcut to calling the fail method in a later idle watch on the underlying Loop object. Ensures that a returned Future object is not ready immediately, but will wait for the next IO round.
fail
Like fail, returns $future itself to allow easy chaining.
Paul Evans <leonerd@leonerd.org.uk>
To install IO::Async::Future, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IO::Async::Future
CPAN shell
perl -MCPAN -e shell install IO::Async::Future
For more information on module installation, please visit the detailed CPAN module installation guide.