Ahh...I see. Assuming you have some sort of autosave logic, how about two
messages: Save and SaveAndQuit? It seems reasonable to me to split the
actions this way...Save could be scheduled using Time.every and SaveAndQuit
could be both an explicit user interaction and an incoming port message
triggered by window.onbeforeunload().
On Monday, October 17, 2016 at 2:26:20 PM UTC-4, David Andrews wrote:
> The problem initially arose when I had two ports, one of which wrote to
> local storage and the other of which closed the window. Nothing was ever
> written to local storage because the window closed first. The reason I
> went with two ports is because those actions are so conceptually different,
> and if it were actually just for local storage I would have used a single
> calling window.close, the current port implementation would have worked for
> On Oct 17, 2016 2:03 PM, "Leroy Campbell" <artis...@gmail.com
>> From what I can tell, port communication uses Cmd because interop with
>> (instead, port are pubsub).
>> But I do have a question: *Is the underlying problem a need to
>> you mentioned localStorage in your initial message. I imagine you'd instead
>> want to leave the coordination in Elm to take advantage of Elm's
>> concurrency model (immutable data + message-passing) and have a single port
>> On Monday, October 17, 2016 at 3:03:14 AM UTC-4, David Andrews wrote:
>>> In another discussion, I was pointed to
>>> which sheds some light on the issue, but also raises a few questions.
>>> 1. The article mentions that APIs generally expose Task in favor of
>>> Cmd. Why is the port API a -> Cmd msg instead of a -> Task Never ()
>>> or something like that?
>>> 2. Is there a recommended way to pass data to ports in order? I've
>>> come up with the workaround of sending over only one port per update and
>>> using Cmd.Extra.message to trigger additional updates immediately,
>>> but I don't think it's very clean.
>>> On Monday, October 17, 2016 at 2:39:01 AM UTC-4, Peter Damoc wrote:
>>>> On Mon, Oct 17, 2016 at 8:02 AM, Janis Voigtländer <
>>>> janis.voi...@gmail.com> wrote:
>>>>> Peter, the problem in David’s case is that the actions he wants to
>>>>> order execution of are port data sending, and there is no “something
>>>>> level, like Tasks” for that. The only API available for port data
>>>>> sending is Cmd-based.
>>>> Ooops... my bad. I should have looked more carefully.
>>>> There is NO FATE, we are the creators.
>>>> blog: http://damoc.ro/
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Elm Discuss" group.
>> To unsubscribe from this topic, visit
>> To unsubscribe from this group and all its topics, send an email to
>> For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Elm
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.