Я пытаюсь закодировать 3 эхо-сервера, работающих в обещаниях, но я хочу знать, какое обещание делает эхо. Есть ли способ сделать это?perl6 как получить конкретную личность обещаний?
no strict;
for 0 .. 2 -> $index {
@result[$index] = start {
$myID = $index;
say "======> $myID\n";
my $rsSocket = IO::Socket::INET.new:
localhost => 'localhost',
localport => 1234 + $index,
listen => 1;
while $rsSocket.accept -> $rsConnection {
say "Promise $myID accepted connection";
while $rsConnection.recv -> $stuff {
say "promise $myID Echoing $stuff";
$rsConnection.print($stuff);
}
$rsConnection.close;
}
}
}
await @result;
Эхо-серверы работают нормально; тестируется с помощью «nc»;
Проблема $myID
становится 2
после того, как создаются обещания, и я не могу сказать, какое обещание выполняет текущее эхо. Похоже, что все обещания используются $myID
; есть ли способ создать переменные, характерные для индивидуального обещания?
Спасибо Тимбус! Советы приняты! – lisprogtor