diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs index 7c69ac132dfd0ca0ec65642b0e309fd42218f316..c17c59b6f0b4670e02999913b3d37e0dcb59d7ce 100644 --- a/src/Quasar/Observable.hs +++ b/src/Quasar/Observable.hs @@ -237,9 +237,8 @@ data LiftA2Observable r = forall r0 r1. LiftA2Observable (r0 -> r1 -> r) (Observ instance IsRetrievable r (LiftA2Observable r) where retrieve (LiftA2Observable fn fx fy) = liftQuasarIO do -- LATER: keep backpressure for parallel network requests - x <- async $ retrieve fx - y <- async $ retrieve fy - liftA2 fn (await x) (await y) + future <- async $ retrieve fy + liftA2 fn (retrieve fx) (await future) instance IsObservable r (LiftA2Observable r) where observe (LiftA2Observable fn fx fy) callback = ensureQuasarSTM do @@ -254,10 +253,9 @@ instance IsObservable r (LiftA2Observable r) where pingObservable (LiftA2Observable _ fx fy) = liftQuasarIO do -- LATER: keep backpressure for parallel network requests - x <- async $ pingObservable fx - y <- async $ pingObservable fy - await x - await y + future <- async $ pingObservable fy + pingObservable fx + await future --data BindObservable r = forall a. BindObservable (Observable a) (a -> Observable r)