What don't you like about try/catch? I find the opposite true, the .then/.catch is more confusing.
get()
.then(handleResult)
.catch(useFallbackResult)
.then(updateState)
I prefer concision and functional expressiveness because it reduces the surface area for writing buggy code. Much like how using map instead writing a for loop can eliminate out of range index bugs, chaining promises brings useful guarantees about how the code I do write can be interpreted.