Quite a few points didn't make any sense or simply showed misunderstanding around how and why promises are what they are.
> Eager, not lazy
Why does this even matter? It's an implementation detail that optimises for performance.
The outcome, eventual resolution, is all that really matters.
> No cancellation
These are not tasks, and covered elsewhere in the thread: I/O.
> Never synchronous
Its a promise, so that doesn't really make sense to complain about.
Alas it is solved with Async/await (which is just promises under the hood.)
> then() is a mix of map() and flatMap()
This one I can concede as it would be useful to have the option, or at least have them exposed.
I suspect then was simply kept because that's what bluebird or whatever it was at the time did.
I believe he's thought a lot about this problem.
Quite a few points didn't make any sense or simply showed misunderstanding around how and why promises are what they are.
> Eager, not lazy
Why does this even matter? It's an implementation detail that optimises for performance.
The outcome, eventual resolution, is all that really matters.
> No cancellation
These are not tasks, and covered elsewhere in the thread: I/O.
> Never synchronous
Its a promise, so that doesn't really make sense to complain about.
Alas it is solved with Async/await (which is just promises under the hood.)
> then() is a mix of map() and flatMap()
This one I can concede as it would be useful to have the option, or at least have them exposed.
I suspect then was simply kept because that's what bluebird or whatever it was at the time did.