@@ -1,4 +1,6 @@
11module Reflex.Dom.Xhr where
2+
3+import Control.Concurrent
24import Control.Lens
35import Control.Monad
46import Control.Monad.IO.Class
@@ -74,15 +76,14 @@ performRequestAsync req = performEventAsync $ ffor req $ \r cb -> do
7476 _ <- newXMLHttpRequest r cb
7577 return ()
7678
77−--performRequestsAsync :: (Traversable f, MonadWidget t m) => Event t (f XhrRequest) -> m (Event t (f XhrResponse))
78−--performRequestsAsync req = performEventAsync $ ffor req $ \rs cb -> do
79−-- _ <- liftIO $ do
80−-- resps <- forM rs $ \r -> do
81−-- resp <- newEmptyMVar
82−-- _ <- newXMLHttpRequest r $ putMVar resp
83−-- return resp
84−-- forkIO $ cb =<< forM resps takeMVar
85−-- return ()
79+performRequestsAsync :: (Traversable f, MonadWidget t m) => Event t (f XhrRequest) -> m (Event t (f XhrResponse))
80+performRequestsAsync req = performEventAsync $ ffor req $ \rs cb -> do
81+ resps <- forM rs $ \r -> do
82+ resp <- liftIO newEmptyMVar
83+ _ <- newXMLHttpRequest r $ putMVar resp
84+ return resp
85+ _ <- liftIO $ forkIO $ cb =<< forM resps takeMVar
86+ return ()
8687
8788getAndDecode :: (FromJSON a, MonadWidget t m) => Event t String -> m (Event t (Maybe a))
8889getAndDecode url = do