runSignal在浏览器中工作,但在节点控制台上不工作

时间:2017-02-23 11:16:03

标签: frp purescript

我一直在玩purescript和信号。我有一段代码

runSignal $ (every 2000.0) ~> logShow

当编译成JS文件(纸浆浏览器)时为

main = do 
         runSignal $ (every 2000.0) ~> logShow

并在浏览器上执行,按预期工作(每2秒记录一次),但卡在psci控制台上。为什么会这样?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我在psci中看到了与无休止过程相似的行为。一个简单的例子就是......

module NeverEnding where

import Prelude
import Control.Monad.Eff.Console (log)
import Control.Monad.Rec.Class (forever)

main = forever $ do
  log "log"

如果您在psci中加载此模块并运行main,您将看不到任何输出。从工作流的角度来看,如果你想从控制台测试这样的东西,我建议运行pulp --watch run --main NeverEnding--main会将您想要的模块设置为主入口点。 --watch将监视文件更改,并在更改时终止无休止的进程,重新编译并重新启动。