可以无限期使用Promise.in吗?

drc*_*law 6 perl6 promise raku

是否有一种直接的方法来使用Promise.in(或其他子/方法/类)来获得不确定的时间?换句话说,承诺永远不会解决。

目前,我正在检查$time何时遵守诺言,以查看是否请求了不确定的时间(以负数或0值表示),并防止react块退出。

这不是一个糟糕的解决方案,但是有没有更多惯用的方式来实现这一目标?

my $time=0;
react {
    whenever Promise.in($time) {
          #check if time is 0
          done if $time > 0;
    }
    whenever signal(SIGINT) {
        done;
    }

    #whenever Supply...{
    #}
}
Run Code Online (Sandbox Code Playgroud)

tim*_*imo 6

您实际上可以Inf像这样传递给Promise.in:

await Promise.in(Inf);
say "never happens";
Run Code Online (Sandbox Code Playgroud)


Eli*_*sen 5

whenever Promise.new {
Run Code Online (Sandbox Code Playgroud)

几乎可以给您一个永远不会兑现的承诺,因此关联的代码将永远不会触发。不过,不知道为什么要这么做。