Async-Template

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

         my ($param, $callback) = @_;
         $callback->(error, result);
      },
      api => SomeObj->new({}),
    }

    tt $vars, << 'END',
       USE timeout = Second;
       AWAIT timeout.start(10)

       r = AWAIT api.call('endpoint', {param = 'val'});
       error = ERROR(r);
       result = RESULT(r);
       RETURN IF ERROR(r);

       p2 = ASYNC some_async_fn('param');
       p1 = ASYNC api.call('endpoint', {});
       AWAIT p1;
       AWAIT p2;
       RETURN IF RESULT(r);
     END
     sub{
        use Data::Dumper; warn Dumper \@_;
        die $_[0] if($_[0]);
        print 'result: ', $_[1];
     };

lib/Async/Template.pm  view on Meta::CPAN

        my ($param, $callback) = @_;
        $callback->(error, result);
     },
     api => SomeObj->new({}),
   }

   tt $vars, << 'END',
      USE timeout = Second;
      AWAIT timeout.start(10)

      r = AWAIT api.call('endpoint', {param = 'val'});
      error = ERROR(r);
      result = RESULT(r);
      RETURN IF ERROR(r);

      p2 = ASYNC some_async_fn('param');
      p1 = ASYNC api.call('endpoint', {});
      AWAIT p1;
      AWAIT p2;
      RETURN IF RESULT(r);
    END
    sub{
       use Data::Dumper; warn Dumper \@_;
       die $_[0] if($_[0]);
       print 'result: ', $_[1];
    };



( run in 1.514 second using v1.01-cache-2.11-cpan-49f99fa48dc )