Thank you. Tried to apply it but my problem is that I'm trying to send 
initialize a request on init:

init : ( Model, Cmd Msg )
init =
 ( { 
 -- my model here
 }
 , getJson
 )

And of course `getJson` is returning `A.Msg`, so even if in B I declare:

type Msg
 = aMSG A.Msg
 | SomeLocalMessage


I'm still getting an error that init was expecting `Main.Msg` but got 
`A.Msg`.

Hope I make sense.


On Tuesday, November 15, 2016 at 7:40:50 AM UTC+1, Peter Damoc wrote:
>
> There used to be a "nesting" set of examples in The Elm Architecture but 
> lately this approach has been discouraged. 
>
> What you describe here is a kind of decomposition into components. 
>
> It is recommended that you have one model and you decompose the 
> functionality of update & view using regular functions. 
>
> If you want to see how this used to be done, take a look at the old 
> CounterPair example:
>
> https://github.com/pdamoc/elm-architecture-tutorial/blob/master/examples/2/CounterPair.elm
>
> Please note that this code is obsolete. 
>
>
>  
>
> On Mon, Nov 14, 2016 at 4:43 PM, Tim Bezhashvyly <[email protected] 
> <javascript:>> wrote:
>
>> I just started digging into Elm so quite possible that my question has a 
>> conceptual problem. Please let me know if so.
>>
>> I have a module A which is asynchronously reading data from JSON. Module 
>> A among other things exposes `getJson` function. As the read is processing 
>> data asynchronously it can not just return data structure but returning 
>> it's Msg type instead which is:
>>
>> type Msg
>>   = FetchSucceed (Maybe Jobs)
>>   | FetchFail Http.Error
>>
>> Now if module B imports module A it can call `getJson` method but it will 
>> only trigger  initial call and then has to listen to `FetchSucceed`:
>>
>> update : A.Msg -> A -> (A, Cmd A.Msg)
>> update msg model =
>>   case msg of
>>   FetchSucceed a ->
>>   (A a, Cmd.none)
>>
>>   FetchFail _ ->
>>   (model, Cmd.none)
>>
>> My question is if module B has it's own command how does `update` 
>> function combines listening to commands from both modules?
>>
>> Thanks.
>>
>> -- 
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> There is NO FATE, we are the creators.
> blog: http://damoc.ro/
>

-- 
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