Size: a a a

2020 December 16

W

Warstone in Modern::Perl
Более того, они и должны реализовываться без промисов, как по мне.
источник

W

Warstone in Modern::Perl
Эм... Я тут немного не вижу как вы пагинируетесь
источник

a

allter in Modern::Perl
там слишком рано нажал.
источник

W

Warstone in Modern::Perl
Ок. Жду
источник

a

allter in Modern::Perl
Я на самом деле просто переписал ваш код с async/await на промисы
источник

a

allter in Modern::Perl
```

my $list = [];
my $get_chunk;
$get_chunk = sub { my $url = shift;
 HTTP::Request->request($url)->then( sub { my $data = shift;
   push(@$list, @{$data->json->{data}});
   if ( my $page = $data->json->{next} ) {
     $get_chunk->( "http://127.0.0.1?page=$page" );
   } else {
     undef;
   }
 
 } );
};
$get_chunk->( "http://127.0.0.1" );


```
источник

a

allter in Modern::Perl
что-то телеграмовскому парсеру голову снесло от perl синтаксиса :)
источник

С

С in Modern::Perl
/source забыл
источник

W

Warstone in Modern::Perl
Эм... Ну и как я к этому должен подцепиться then'ом потом?..
источник

IB

Ivan Bessarabov in Modern::Perl
allter
что-то телеграмовскому парсеру голову снесло от perl синтаксиса :)
я забил использовать три бектика, а стал использовать hotkey для превращения текста в моноширинный (на маке cmd+shift+k)
источник

W

Warstone in Modern::Perl
Я-же не могу сделать $get_chunk->{"http://127.0.0.1")->then(sub { my ($list) = @_; ... })
источник

W

Warstone in Modern::Perl
Так как я подпишусь только на первый http запрос.
источник

W

Warstone in Modern::Perl
То есть вы обязаны создать прокси промис, его зафаереть в случае если нету next и уже его отдавать в $get_chunk->("..")
источник

a

allter in Modern::Perl
Warstone
Эм... Ну и как я к этому должен подцепиться then'ом потом?..
В смысле? Предполагается, что у вас
my $list = [];

доступен где-то в вашем коде.
$get_chunk->() вам вернёт промис, который заресолвится в undef, если ok или в ошибку. Если заресолвится, то $list будет наполнен данными.
источник

SZ

Sergey Zhmylove in Modern::Perl
С
/source забыл
Что?
источник

W

Warstone in Modern::Perl
allter
В смысле? Предполагается, что у вас
my $list = [];

доступен где-то в вашем коде.
$get_chunk->() вам вернёт промис, который заресолвится в undef, если ok или в ошибку. Если заресолвится, то $list будет наполнен данными.
Эм... Окей... Чуть изменим сигнатуру...
источник

С

С in Modern::Perl
>  У нас есть ресурс http://127.0.0.1/source он возвращает данные в стиле
источник

W

Warstone in Modern::Perl
sub get: Async {
 my $list = [];
 my $data = await HTTP::Request->request("http://127.0.0.1");
 push(@$list, @{$data->json->{data}});
 while(my $page = $data->json->{next}) {
   $data = await HTTP::Request->request("http://127.0.0.1?page=$page");
   push(@$list, @{$data->json->{data}});
 }
 return $list;
}
источник

W

Warstone in Modern::Perl
Вот
источник

SZ

Sergey Zhmylove in Modern::Perl
С
>  У нас есть ресурс http://127.0.0.1/source он возвращает данные в стиле
Ааа, да это не суть :)
источник