Yes, my current approach does seem pretty solid from a theoretical point of 
view, but it feels like a poor expression of my intent. I have to create 
this "synthetic" intermediate msg which only exists for the purposes of the 
recursion, and then I have to handle the production of two messages in a 
different part of the code (the update function) from where I really ask 
for them (the call to Task.perform).

I guess what I'm getting hung up on is the fact that this is all 
necessitated by the design of Task.perform. What I'm trying to do may be so 
marginal that it doesn't make sense to try modifying Task.perform to 
accommodate it, and that's not really what I'm looking for anyway. I just 
wanted to see if there was some existing trick for doing a task-local 
expression of multiple msgs.

On Wednesday, October 19, 2016 at 1:11:30 PM UTC+2, Simon wrote:
>
> Sounds like you a recursively apply the update function, and that sounds 
> like pretty solid functional programming
>
>
> On Wednesday, 19 October 2016 11:51:16 UTC+2, Austin Bingham wrote:
>>
>> Is there a way to make Task.perform produce a batched "Cmd msg" on 
>> success (or failure, for that matter)? I've got a case where, on success, I 
>> want to send out more than one Msg, but because the success handler for 
>> Task.perform can only generate one msg this isn't straightforward.
>>
>> What I'm doing now is creating an intermediate msg from the success 
>> handler. When my update function handles this intermediate msg, it is then 
>> able to generate the batched Cmd of two msgs that I want. This seems to 
>> work well, but it feels like pattern that only exists because of 
>> Task.perform's design.
>>
>> So, is there a better way? Am I missing something that would let me 
>> remove this intermediate message, or is that just the way things have to 
>> work?
>>
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to