首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问定时器设置后的值?

如何访问定时器设置后的值?
EN

Stack Overflow用户
提问于 2013-08-12 02:31:55
回答 1查看 223关注 0票数 1

考虑到下面的R3-GUI代码,是否有一种方法可以访问计时器中剩余的时间?计时器ID是由set-timer返回的,但是我不确定我是否可以用它做什么?

代码语言:javascript
复制
set-timer [print "done"] 60

换句话说,我在一个假代码示例中寻找的是:

代码语言:javascript
复制
>> get-timer/time-remaining timer-id
== 0:0:21
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-12 03:46:05

通过查看set-timer的来源可以找到答案

代码语言:javascript
复制
>> source set-timer
set-timer: make function! [[
    {Calls a function after a specified amount of time. Returns timer ID reference.}
    code [block!]
    timeout [number! time!]
    /repeat "Periodically repeat the function."
    /local t id
][
    t: now/precise
    if number? timeout [timeout: to time! timeout]
    sort/skip/compare append guie/timers compose/deep/only [(id: guie/timer-id: guie/timer-id + 1) [
        timeout (t + timeout)
        rate (all [
                repeat
                max 0:00 timeout
            ])
        callback (function [] code)
    ]] 2 2
    guie/timeout: true
    id
    ]
]

如果计时器仍在运行,它将位于guie对象中。

代码语言:javascript
复制
>> guie/timers
== []

>> set-timer [print "done"] 2
== 5

>> guie/timers
== [5 [
    timeout 11-Aug-2013/22:41:13.381-5:00
    rate none
    callback make function! [[
        /local
    ][print "done"]]
]]

得到日期值如下所示:

代码语言:javascript
复制
second select guie/timers timer-id
>>b: second select guie/timers 5
==11-Aug-2013/22:41:13.381-5:00
>>c: now/time - b/time
== 0:0:55

如果计时器已经完成,那么do事件就会清除它。如果事件没有运行,那么即使时间用完了,计时器也会保持不变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18178815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档