Javascript FileReader oneror事件-如何找出错误所在



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

最新更新