Как отловить ошибку во время выполнения в EXIF.getData (...) - PullRequest
0 голосов
/ 13 марта 2019

Очевидно, что некоторые изображения «повреждены» из-за отсутствия тега 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? Заранее спасибо:)

...