If you're working with Files or Blob objects, you can't really do anything with them besides read their size and type unless you use one of its methods (e.g. bytes, arrayBuffer, slice, stream, text), all of which (besides stream) return a Promise.
For me, in React, if I'm expected to handle a Promise, my mind gravitates to either React Query or SWR. Something like this:
import { useQuery } from "@tanstack/react-query";
const Component = ({ file }: { file: File }) => {
const { data: arrayBuffer } = useQuery({
queryKey: ["Component", file],