Очевидно, что некоторые изображения «повреждены» из-за отсутствия тега EXIF
по определенной причине.
А EXIF.getData(corruptedImage, function () {})
Выдает эту RangeError:
Uncaught RangeError: Offset is outside the bounds of the DataView
at DataView.getUint8 (<anonymous>)
at readTagValue (exif.js:595)
at readTags (exif.js:572)
at readThumbnailImage (exif.js:701)
at readEXIFData (exif.js:838)
at findEXIFinJPEG (exif.js:449)
at handleBinaryFile (exif.js:370)
at FileReader.fileReader.onload (exif.js:391)
Также использование try, catch, даже Promises для асинхронной функции (см. Ниже) не содержит ошибку. Он по-прежнему генерирует ту же ошибку Uncaught RangeError, что и выше.
var test = (img) => {
return new Promise((resolve, reject) => {
try {
EXIF.getData(img, resolve);
} catch (e) {
reject(e);
}
})
};
test(corruptedImage)
.then(() => { console.log('Got the data') })
.catch(() => { console.log('Got an error'); });
Может кто-нибудь, пожалуйста, помогите мне, как содержать эту RangeError? Заранее спасибо:)