Advertisement
Guest User

Untitled

a guest
Jan 29th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.51 KB | None | 0 0
  1. sub any {
  2.   my ($class, @promises) = @_;
  3.  
  4.   my $any = ref($proto) ? $proto->_clone : $proto->new;
  5.  
  6.   my $rejections = [];
  7.   my $remaining = scalar @promises;
  8.  
  9.   foreach (@promises) {
  10.     return $any->resolve($_) if ! @_ or ! blessed $_ or ! $_->can('then');
  11.   }    
  12.   for my $i (0 .. $#promises) {
  13.     $promises[$i]->then(
  14.       sub { $any->resolve(@_) },
  15.       sub {
  16.         $rejections[$i] = [ @_ ];
  17.         $any->reject(@$rejections) if --$remaining <= 0;
  18.       }
  19.     );
  20.   }
  21.  
  22.   return $any;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement