JavascriptFileReader
对象支持在出现错误时调用的onerror
处理程序,但传入的事件是ProgressEvent
,不包含任何错误详细信息。
我怎样才能知道实际发生了什么错误?
RTF Ming对@Ariel的评论做出了更密切的回应(https://developer.mozilla.org/en-US/docs/Web/API/FileReader/error),我看到FileReader具有error
属性和error
事件。当调用错误处理程序时,传递给它的ProgressEvent
几乎是无用的,您需要查看error
属性。
因此,不是:
reader.onerror = x => { throw x }
更合适的回应是:
reader.onerror = () => { throw reader.error }`
或者,如果您正在包装一个promise(根据Javascript Promises with FileReader(((,而不是:
reader.onerror = reject:
你最好使用
reader.onerror = () => reject(reader.error)
话虽如此,error属性的类型是DOMException
,它不是从Error
继承的,在我的情况下,包含的有用信息很少,但它似乎是最好的,而且据我所知,抛出DOMException
似乎被认为是可以接受的做法,即使它不是Error