gpt4 book ai didi

purescript - 如何在 PureScript v0.7 中使用 setTimeout

转载 作者:行者123 更新时间:2023-12-04 00:08:52 24 4
gpt4 key购买 nike

我想像这样在 PureScript 中使用 setTimeout 动画。

loop n =
if n > 100
then do
return Unit
else do
print n
timeout (loop n+1) 30

purescript-timers在 v0.7 中不再起作用。

我不知道如何实现这一点。

最佳答案

最简单的方法是为 setTimeout 定义自己的外部导入。 :

module SetTimeout where

foreign import data TIMEOUT :: !

foreign import timeout :: forall eff a.
Int ->
Eff (timeout :: TIMEOUT | eff) a ->
Eff (timeout :: TIMEOUT | eff) Unit

在你的国外Javascript模块中,你可以定义 setTimeout如下:
"use strict";

// module SetTimeout

exports.timeout = function(millis) {
return function(action) {
return function() {
setTimeout(action, millis);
};
};
};

您可以扩展它以使用 clearTimeout 之类的东西。如果需要的话。

其他一些可能的方法:
  • 发送拉取请求以更新 purescript-timers遵循 wiki 上的迁移指南:https://github.com/purescript/purescript/wiki/0.7-Migration-Guide
  • 使用later'来自 purescript-aff : doc
  • 关于purescript - 如何在 PureScript v0.7 中使用 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779944/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com