如何在回调中访问timeoutID

时间:2015-08-06 17:02:13

标签: callback purescript

我想用purescript-timers这样写。

main = do
  t <- interval 10 $ do
    clearInterval t

发生错误

  

未知值t

1 个答案:

答案 0 :(得分:0)

您可以使用Ref来存储和读取ID。

main = do
  idRef ← Ref.new (-1)
  id ← interval 10 (Ref.read idRef >>= clearInterval)
  Ref.write id idRef

您的程序未编译的原因是,t仅在绑定器后的范围内。换句话说,do块中之后的任何语句都可以使用t,但以前不能使用任何语句,语句本身也不能使用t

在使用Ref的此解决方案中,由于idRef是预先绑定在语句中的,因此可以在后面的语句中的任何位置使用它。