Bob Glamm
07/24/2019, 6:27 PMIO {...}
in conjunction with effect {...}
but ^^ the example above gets to SOE pretty quickly when attempting to use the two togetherpakoito
07/24/2019, 6:49 PMpakoito
07/24/2019, 6:49 PMpakoito
07/24/2019, 6:49 PMBob Glamm
07/24/2019, 6:54 PMBob Glamm
07/24/2019, 6:54 PMIO
, but the mapper called by tailRecM used effectBob Glamm
07/24/2019, 6:55 PMpakoito
07/24/2019, 6:56 PMpakoito
07/24/2019, 6:56 PMBob Glamm
07/24/2019, 6:57 PMBob Glamm
07/24/2019, 6:58 PMBob Glamm
07/24/2019, 6:59 PMBob Glamm
07/24/2019, 7:00 PMpakoito
07/24/2019, 7:37 PMpakoito
07/24/2019, 7:37 PMpakoito
07/24/2019, 7:38 PMpakoito
07/24/2019, 7:38 PMBob Glamm
07/24/2019, 7:38 PMBob Glamm
07/24/2019, 7:41 PMIO
block since the likely error handling is either the entire retrieval succeeds or failsBob Glamm
07/24/2019, 7:41 PMpakoito
07/24/2019, 7:59 PMpakoito
07/24/2019, 8:07 PMBob Glamm
07/24/2019, 8:22 PMBob Glamm
07/24/2019, 8:22 PMIO
Bob Glamm
07/24/2019, 8:23 PMIO
just to capture that effect - simply chaining suspend
calls won't do that?pakoito
07/24/2019, 8:26 PMpakoito
07/24/2019, 8:26 PMpakoito
07/24/2019, 8:26 PM.handleErrorWith { }
pakoito
07/24/2019, 8:27 PMBob Glamm
07/24/2019, 8:34 PM.handleErrorWith
, but if my route handler accesses (e.g.) databases or files or network calls I still .flatMap
over (SomeResource) -> IO<SomeResult>
, I think?Bob Glamm
07/24/2019, 8:35 PMF<SomeResult>
for polymorphic effect types)pakoito
07/24/2019, 8:35 PMpakoito
07/24/2019, 8:36 PMpakoito
07/24/2019, 8:36 PMpakoito
07/24/2019, 8:37 PMmyIo.suspended()
pakoito
07/24/2019, 8:37 PMpakoito
07/24/2019, 8:37 PMBob Glamm
07/24/2019, 8:37 PMpakoito
07/24/2019, 8:37 PMpakoito
07/24/2019, 8:38 PMBob Glamm
07/24/2019, 8:38 PMBob Glamm
07/24/2019, 8:38 PMBob Glamm
07/24/2019, 8:39 PMpakoito
07/24/2019, 9:06 PMpakoito
07/24/2019, 9:07 PMpakoito
07/24/2019, 9:07 PMpakoito
07/24/2019, 9:10 PMpakoito
07/24/2019, 9:12 PMpakoito
07/24/2019, 9:12 PMpakoito
07/24/2019, 9:13 PMpakoito
07/24/2019, 9:14 PMpakoito
07/24/2019, 9:19 PMpakoito
07/24/2019, 9:19 PMpakoito
07/24/2019, 9:22 PMlaunch
that does cancellation without all the bells and whistles, and is piped to IOpakoito
07/24/2019, 9:26 PMBob Glamm
07/25/2019, 12:56 PMsuspend
and IO
, and (I think) that 0.10.x has methods that go from IO -> suspend and from suspend -> IO. So I think that means with 0.10.x that if ktor handlers are suspend, I can supply an IO {...}.handleErrorWith {...}.suspended()
(or whatever the IO -> suspend bridge method is called) and hand that right to ktor. And if I'm understanding you right I can interleave IO and suspend as appropriate in a similar fashionsimon.vergauwen
07/25/2019, 12:58 PM