Raku의 at — 특정 시각에 완료되는 Promise
Raku의 at — 특정 시각에 완료되는 Promise
지금으로부터 몇 초 뒤, 혹은 특정 시각이 되면 완료되는 작업이 필요할 때가 있어요. Promise.at은 그런 용도에 맞는 메서드예요. 지정한 시각에, 혹은 그 직후에 완료되는 새 Promise를 만들어 줘요.
method at(Promise:U: $at, :$scheduler = $*SCHEDULER --> Promise:D)
주어진 시간 —— Instant 또는 그에 상당하는 Numeric으로 주는 —— $at 시각에, 또는 그 이후 가능한 한 빨리 완료되는 새 Promise를 돌려줘요.
my $p = Promise.at(now + 2).then({ say "2 seconds later" });
# do other stuff here
await $p; # wait here until the 2 seconds are over
만약 주어진 시각이 이미 과거라면, 지금(now)으로 취급해서 돌려받은 Promise를 곧바로 완료시켜요. 다만 이런 상황은 react와 whenever 블록으로 처리하는 편이 더 명확할 때가 많다는 점도 알아두면 좋아요.
출처: Raku 공식 문서 — at
본문
$at시각(Instant또는 동등한Numeric)에 완료되는 새Promise를 돌려줘요.- 시간이 과거면 즉시 완료된
Promise처럼 취급돼요. - 스케줄러는 기본값으로
$*SCHEDULER를 쓰며,:$scheduler로 바꿀 수 있어요. - 지연 실행이 필요할 땐
then으로 이어주면 자연스럽고, 복잡한 흐름은react/whenever블록이 더 명확할 수 있어요.