Ich schreibe ein Mojolicious-Modul/Controller, die zwei GET-Anforderungen machen müssen; einer nach dem anderen. Die zweite GET-Anforderung hängt von den Antwortdaten von der ersten ab.Mojolicious - zwei non-blocking GET-Anfragen in der gleichen Steuerung
Ich möchte beide Anforderungen nicht blockierend sein. Ich kann jedoch nicht einfach aus dem Kontext des ersten nicht blockierenden Rückrufs "zurückgeben", um Werte für die zweite Anfrage zu liefern.
sub my_controller {
my ($self) = @_;
$self->ua->get($first_endpoint, sub {
# handle response - extract value for second request?
});
my $second_endpoint = 'parameter not available here';
$self->ua->get($second_endpoint, sub {});
}
Ich würde es vorziehen, die zweite Anfrage nicht in den ersten Rückruf zu verschachteln, wenn möglich?
Wenn die zweite von der ersten abhängt und nicht ausgeführt wird, wenn die erste fehlschlägt, ist die Verschachtelung genau das, was Sie tun müssen. – simbabque
Verschachteln ist die Art und Weise, wie Sie bei nicht blockierenden Anrufen die Reihenfolge von zwei Vorgängen angeben. Warum sollten Sie dies vermeiden? – polettix