| Pending Connection
| Accepted Connection
| Rejected String
и для каждого конструктора есть по призме
дальше, есть где-то вот такой код, он, конечно не правильный (представим, что это хаскель, тк суть вопроса не меняется)
disconnect = do
env ← ask
liftEffect do
status ← Ref.read env.status
for_ (status ^? _Accepted) \c →
WebSocket.close c.socket
Ref.write (Connection.Closed Nothing) env.status
я хочу закрыть сокет не только есть подключение в состоянии Accepted, но и в Pending, как это сделать и не писать два раза
for_ (status ^? _Pending) \c → WebSocket.close c.socket
for_ (status ^? _Accepted) \c → WebSocket.close c.socket
?
Возможно https://www.stackage.org/haddock/lts-13.0/lens-4.17/Control-Lens-Combinators.html#v:failing Но в профункторных линзах такого нет. Вообще как тут обсуждалось, что было бы не плохо иметь инстанс альтернативы для призм
Обсуждают сегодня