NAME
Future::Mojo - use Future with Mojo::IOLoop
SYNOPSIS
use
Future::Mojo;
use
Mojo::IOLoop;
my
$loop
= Mojo::IOLoop->new;
my
$future
= Future::Mojo->new(
$loop
);
$loop
->timer(
3
=>
sub
{
$future
->done(
'Done'
) });
$future
->get,
"\n"
;
DESCRIPTION
This subclass of Future stores a reference to the associated Mojo::IOLoop instance, allowing the await
method to block until the Future is ready.
For a full description on how to use Futures, see the Future documentation.
CONSTRUCTORS
new
my
$future
= Future::Mojo->new;
my
$future
= Future::Mojo->new(
$loop
);
Returns a new Future. Uses "singleton" in Mojo::IOLoop if no loop is specified.
new_timer
my
$future
= Future::Mojo->new_timer(
$seconds
);
my
$future
= Future::Mojo->new_timer(
$loop
,
$seconds
);
Returns a new Future that will become ready after the specified delay. Uses "singleton" in Mojo::IOLoop if no loop is specified.
new_timeout
my
$future
= Future::Mojo->new_timeout(
$seconds
);
my
$future
= Future::Mojo->new_timeout(
$loop
,
$seconds
);
Returns a new Future that will fail after the specified delay. Uses "singleton" in Mojo::IOLoop if no loop is specified.
METHODS
Future::Mojo inherits all methods from Future and implements the following new ones.
loop
$loop
=
$future
->loop;
Returns the underlying Mojo::IOLoop object.
await
$future
->await;
Runs the underlying Mojo::IOLoop until the future is ready. If the event loop is already running, an exception is thrown.
done_next_tick
$future
=
$future
->done_next_tick(
@result
);
A shortcut to calling the "done" in Future method on the "next_tick" in Mojo::IOLoop. Ensures that a returned Future object is not ready immediately, but will wait for the next I/O round.
fail_next_tick
$future
=
$future
->fail_next_tick(
$exception
,
@details
);
A shortcut to calling the "fail" in Future method on the "next_tick" in Mojo::IOLoop. Ensures that a returned Future object is not ready immediately, but will wait for the next I/O round.
promisify
my
$promise
=
$future
->promisify;
Composed from Future::Role::Promisify.
BUGS
Report any issues on the public bugtracker.
AUTHOR
Dan Book <dbook@cpan.org>
CONTRIBUTORS
COPYRIGHT AND LICENSE
This software is Copyright (c) 2015 by Dan Book.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)