The order is deterministic, as specified, I just don't think it's the right
order. I don't have a concrete example with finally, but if I were to
imagine one, say you're writing some tests with jest and you want to make
some checks in the then callbacks. In order for those checks to be executed
in good time, you must return a promise from the test callback. If you have
more promises you have to do a Promise.all in order to make sure that you
wait for all the promises. If you are able to determine the order in which
the promises are settled, you can return the one that is settled the last.
This is perhaps not a convincing example, but if this didn't matter why is
the order specified?

On Fri, Feb 23, 2018 at 3:59 PM, Viktor Kronvall <viktor.kronv...@gmail.com>
wrote:

> Since these two Promises aren't chained to one another I wouldn't expect
> any specific
> deterministic ordering between the `console.log` statements. Are you
> suggesting that
> such a deterministic ordering should be imposed by using micro tasks or
> what are you
> proposing here exactly?
>
> In other words, why exactly do you expect the result to always be printing
> 1 before
> printing 2?
>
> 2018年2月23日(金) 19:21 Raul-Sebastian Mihăilă <raul.miha...@gmail.com>:
>
>> I find it weird that
>>
>> ```js
>> Promise.resolve().finally(() => {}).then(() => { console.log(1); });
>> Promise.resolve().then(() => {}).then(() => { console.log(2); });
>> ```
>>
>> prints 2 and then 1. It would have been possible to spec it in such a way
>> that it would have printed 1 and 2.
>>
>> On the other hand
>>
>> ```js
>> Promise.resolve().finally().then(() => { console.log(1); });
>> Promise.resolve().then().then(() => { console.log(2); });
>> ```
>>
>> prints 1 and then 2.
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to