如何从承诺中退出承诺?
How to exit a promise from within a promise?
如何从承诺中退出承诺? perl6 文档没有提供简单的方法。例如:
my $x = start {
loop { # loop forever until "quit" is seen
my $y = prompt("Say something: ");
if $y ~~ / quit / {
# I want to exit the promise from here;
# "break" and "this.break" are not defined;
# "return" does not break the promise;
# I do NOT want an error exception when exiting a promise;
# I want to return a value as the result of this promise;
}
else { say $y; }
}
}
我不想永远处于承诺循环中。 break()
和this.break()
不承认,return
不食言
使用last
keyword退出循环。
start
块的保留值是其最后一条语句返回的值。
所以:
my $x = start {
loop { # loop forever until "quit" is seen
my $y = prompt("Say something: ");
if $y ~~ / quit / {
last
}
else { say $y; }
}
42 # <-- The promise will be kept with value `42`
}
如何从承诺中退出承诺? perl6 文档没有提供简单的方法。例如:
my $x = start {
loop { # loop forever until "quit" is seen
my $y = prompt("Say something: ");
if $y ~~ / quit / {
# I want to exit the promise from here;
# "break" and "this.break" are not defined;
# "return" does not break the promise;
# I do NOT want an error exception when exiting a promise;
# I want to return a value as the result of this promise;
}
else { say $y; }
}
}
我不想永远处于承诺循环中。 break()
和this.break()
不承认,return
不食言
使用last
keyword退出循环。
start
块的保留值是其最后一条语句返回的值。
所以:
my $x = start {
loop { # loop forever until "quit" is seen
my $y = prompt("Say something: ");
if $y ~~ / quit / {
last
}
else { say $y; }
}
42 # <-- The promise will be kept with value `42`
}