Jim*_*ger 9 splash-screen progress-bar raku
我想在应用程序加载/初始化时显示进度条。
该代码不起作用,但应该让您了解我想要完成的任务。
my Bool $done-compiling = False;
BEGIN {
start repeat {
print '*';
sleep 0.33;
} until $done-compiling;
};
INIT {
$done-compiling = True;
};
Run Code Online (Sandbox Code Playgroud)
是否触发了我可以在 BEGIN 块中响应的事件?
Liz 根据您编写的代码提供了解决方案,修复了原始代码中的错误。
这是一个更简单的版本:
BEGIN start repeat { print '*'; sleep 0.33 } until INIT True
Run Code Online (Sandbox Code Playgroud)
(您可能会认为INIT True
这是一些特殊功能,但它只是从返回值的移相器的工作方式中自然而然地体现出来。)
我认为代码没问题。如果你模拟加载,你会看到一个带有 * 的进度条:
my Bool $done-compiling;
BEGIN {
start repeat {
print '*';
sleep 0.33;
} until $done-compiling;
}
BEGIN sleep 3; # simulate compilation / loading
INIT $done-compiling = True;
Run Code Online (Sandbox Code Playgroud)
在块中设置标志INIT
应该足够了!我想您可以将INIT
块的执行视为您正在寻找的事件?