简体   繁体   中英

Javascript FileReader onerror event - how to find out what the error was?

the Javascript FileReader object supports an onerror handler that gets called when there has been an error, but the event passed in is a ProgressEvent and doesn't contain any details of the error.

How can I find out what actual error occurred?

After RTFMing a little more closely in response to @Ariel's comment ( https://developer.mozilla.org/en-US/docs/Web/API/FileReader/error ), I see that FileReader has an error property as well as an error event. When the error handler is called, the the ProgressEvent passed to it is next to useless and you need to look at the error property instead.

Therefore instead of:

reader.onerror = x => { throw x }

a more appropriate response is:

reader.onerror = () => { throw reader.error }`

or if you're wrapping inside a promise (as per Javascript Promises with FileReader() ), instead of:

reader.onerror = reject:

you're better off using

reader.onerror = () => reject(reader.error)

Having said that, the error property is of type DOMException which does not inherit from Error and, in my case, contained very little useful information, but it seems to be the best there is and, as far as I could tell, throwing a DOMException seems to be considered acceptable practice even though it isn't an Error

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM