1
我正在使用大量使用Pipes庫的Haskell程序。我將庫的一部分移植到Haste。我碰到了一個絆腳石的那個地方是JavaScript處理睡眠的奇怪方式。在Haste和Haskell中用管道睡覺
我想寫是一個簡單的管道發送其結果
sleeper :: Int -> Pipe a a IO()
sleeper time = forever $ do
temp <- await
sleep time
yield temp
然而在此之前,延遲,似乎睡眠就像一個回調。
setTimeout :: MonadIO m => Int -> IO() -> m()
我試着做
sleeper time = do
temp <- await
yield temp
setTimeout time $ sleeper time
但類型不正確排隊。有沒有辦法得到延遲管道?
您可以通過等待其獲取通過回調另一個線程填充的無功效仿睡覺。 – 2014-08-29 15:54:57
你是否真的想在JavaScript環境中入睡?我對Haste並不熟悉,但如果它不使用WebWorker,則會凍結您的環境。 – Zeta 2014-08-30 00:35:18