gpt4 book ai didi

promise - 为什么我不允许破坏 Promise?

转载 作者:行者123 更新时间:2023-12-03 18:29:10 29 4
gpt4 key购买 nike

以下简单的 promise 是发誓的,我不允许打破它。

my $my_promise = start {
loop {} # or sleep x;

'promise response'
}

say 'status : ', $my_promise.status; # status : Planned

$my_promise.break('promise broke'); # Access denied to keep/break this Promise; already vowed
# in block <unit> at xxx line xxx
这是为什么?

最佳答案

因为誓言是誓言,你无法改变它:只有真正拥有誓言的东西,才能打破誓言。这就是vow的意图功能。
你试图通过违背你所展示的 promise 来实现什么?是否要停止在start 内部进行的工作?堵塞?打破 promise 不会那样做。和 vow明确添加了机制以防止您认为它可以以某种方式停止 start 内的工作堵塞。
如果您想在 start 内工作块是可中断的,您将需要添加某种定期检查的信号量,例如:

my int $running = 1;
my $my_promise = start {
while $running {
# do stuff
}
$running
}

# do other stuff
$running = 0;
await $my_promise;
希望这是有道理的。

关于promise - 为什么我不允许破坏 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64212821/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com