我对下面的代码有些不满意。随着我的发展bGameState
,我会添加更多的事件。playerInputE
(我想其他的)共享相同的初始值这一事实会Events
导致问题吗?换句话说,我的初始设计是否足够完善?
此外,是否有替代使用changes
?我认为我符合正确使用的标准,但不确定。
makeNetworkDescription :: AddHandler PlayerCommand ->
TChan GameState ->
IO EventNetwork
makeNetworkDescription addCommandEvent gsChannel = compile $ do
eInput <- fromAddHandler addCommandEvent
let playerInputE = accumE initialGS $ updateGS <$> eInput
bGameState = stepper initialGS playerInputE
eGameState <- changes bGameState
reactimate $ (\n -> (atomically $ writeTChan gsChannel n)) <$> eGameState