Promises aren't the best abstractions, especially in JavaScript. When used inside React or ReasonReact, it is almost always wrong.
For that reason, we actually recommend judicious usages of callback-based apis, like so.
This applies to other leaky, slow and uncancellable, and colored promise abstractions like fetch. Prefer using them only for interop, not for your core logic.