Chained to Task.andThen and Task.onError? And what those tow must return? I 
assume commands as they can't change model directly, right?

On Wednesday, November 16, 2016 at 2:46:41 PM UTC+1, Peter Damoc wrote:
>
> Sorry, old habits. 
>
> The Http API became Cmd oriented. You don't need Task.attempt. Just use 
> the regular Http.get and use the Cmds produced by it. 
>
> If you need chaining, there is a `toTask` function that converts Requests 
> to Tasks 
>
>
>
> On Wed, Nov 16, 2016 at 3:33 PM, Tim Bezhashvyly <[email protected] 
> <javascript:>> wrote:
>
>> Thank. This makes lots of sense in regards of first argument.
>>
>> What about the second? In 0.17 it could be for example:
>>
>> (Http.get "my.json" decoderFunction)
>>
>> But not it produced an error:
>>
>> Function `attempt` is expecting the 2nd argument to be: Task.Task 
>>> Http.Error (Maybe MyType) But it is: Http.Request MyType
>>
>>
>>
>> On Wednesday, November 16, 2016 at 2:22:48 PM UTC+1, Peter Damoc wrote:
>>>
>>> The old Task.perform was creating either a success message (if it 
>>> succeeded) or a fail message (if it failed) 
>>> The current Task.perform cannot fail. It is used for Tasks that are 
>>> known to succeed like requesting the window size or requesting some random 
>>> number. 
>>>
>>> The Task.attempt takes a function that takes a result (results 
>>> encapsulate both the success and the failure) and produces a message based 
>>> on that result. 
>>>
>>> You could define something like: 
>>>
>>> handleRequest result =
>>>     case result of 
>>>         Ok val -> 
>>>             SuccessMessage val 
>>>         Err err -> 
>>>             FailMessage err 
>>>
>>> and use it like this: 
>>>
>>> someHttpCmd = Task.attempt handleRequest someHttpRequestTask 
>>>
>>> Alternatively, you could just have only one message that takes a Result 
>>> and handle each case in that message's part of the update as demonstrated 
>>> by the Http example:
>>> http://elm-lang.org/examples/http
>>>
>>>
>>>
>>>
>>> On Wed, Nov 16, 2016 at 3:05 PM, Tim Bezhashvyly <[email protected]> 
>>> wrote:
>>>
>>>> Sorry again if something obvious but Im not sure how now to make async 
>>>> requests in 0.18.0.
>>>>
>>>> In 0.17.1 it was done with Task.perform where first parameter was a 
>>>> success Msg, second - fail Msg and third is the task which execution 
>>>> result 
>>>> is then passed to first function.
>>>>
>>>> As far as I understand now Task.attempt must be used but documentation 
>>>> is not quite comprehensive. Could someone please advise?
>>>>
>>>> -- 
>>>> 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.
>>>>
>>>
>>>
>>>
>>> -- 
>>> 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] <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