I do sort of wish we had something better than promises. Errors can be swallowed and there's no way to cancel promises which makes sense, but is also problematic when promise based APIs like Fetch exist. You also can't indicate progress in a promise, which makes them a poor choice for many asynchronous processes (unless you attach a callback as well.)
I like the idea of Observables though. If they could work implicitly with async/await I'd be sold.
Fetch will take a cancellation token - it's just taking a while but work is being done. A lot of discussions are happening since people are scared (rightfully so) about making a new API bad from the start.
The "errors are swallowed" is also FUD, see my comment below about `unhandledRejection` and `unhandledrejection`.
Don't get me wrong, I use async/await almost exclusively these days - but I've run into these problems in large real world applications, and they can be hard to fix.
This isn't FUD if the main implementation is "broken".
With regards to errors being swallowed, I'm not talking about unhandled rejections, I'm talking about code that mishandles rejections and may swallow one intentionally, or code that doesn't pass along errors properly.
I like the idea of Observables though. If they could work implicitly with async/await I'd be sold.