NAME
Promise::ES6 - ES6-style promises in Perl
SYNOPSIS
my $promise = Promise::ES6->new( sub {
my ($resolve_cr, $reject_cr) = @_;
# ..
} );
my $promise2 = $promise->then( sub { .. }, sub { .. } );
my $promise3 = $promise->catch( sub { .. } );
my $promise4 = $promise->finally( sub { .. } );
my $resolved = Promise::ES6->resolve(5);
my $rejected = Promise::ES6->reject('nono');
my $all_promise = Promise::ES6->all( \@promises );
my $race_promise = Promise::ES6->race( \@promises );
DESCRIPTION
This is a rewrite of Promise::Tiny that implements fixes for certain bugs that proved hard to fix in the original code. This module also removes superfluous dependencies on AnyEvent and Scalar::Util.
The interface is the same, except:
Promise resolutions and rejections accept exactly one argument, not a list. (This accords with the standard.)
Unhandled rejections are reported via
warn()
.A
finally()
method is defined.
COMPATIBILITY
Right now this doesn’t try for interoperability with other promise classes. If that’s something you want, make a feature request.
SEE ALSO
If you’re not sure of what promises are, there are several good introductions to the topic. You might start with this one.