Dom events 如何在addEventListener中计划removeEventListener?
我试图定义一个事件侦听器,它可以触发自己的删除 通常的方法是定义侦听器,然后在调用addEventListener时使用引用。调用removeEventListener时使用相同的引用。由于Purescript是一种严格的语言,我似乎无法做到这一点,因为我无法引用我定义的侦听器Dom events 如何在addEventListener中计划removeEventListener?,dom-events,purescript,Dom Events,Purescript,我试图定义一个事件侦听器,它可以触发自己的删除 通常的方法是定义侦听器,然后在调用addEventListener时使用引用。调用removeEventListener时使用相同的引用。由于Purescript是一种严格的语言,我似乎无法做到这一点,因为我无法引用我定义的侦听器 import Web.Event.EventTarget do listener <- eventListever (\event -> do somethingUsef
import Web.Event.EventTarget
do
listener <- eventListever (\event -> do
somethingUsefulWith event
_ <- removeEventListener evType listener' false target
pure unit
)
addEventListener evType listener false target
导入Web.Event.EventTarget
做
听者做
一些与事件有关的事情
_当前的解决方案是使用Ref
import Effect.Ref as Ref
example = do
listenerRef <- Ref.new Nothing
listener <- eventListener \event -> do
Ref.read listenerRef >>= traverse_ \listener -> do
removeEventListener evType listener false target
Ref.write (Just listener) listenerRef
addEventListener evType listener false target
import Effect.Ref作为Ref
示例=do
listenerRef>=遍历\侦听器->执行
removeEventListener evType侦听器错误目标
Ref.write(仅侦听器)listenerRef
addEventListener evType侦听器错误目标