首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXIF-JS数据在方法外部未定义

EXIF-JS数据在方法外部未定义
EN

Stack Overflow用户
提问于 2019-10-21 02:09:15
回答 1查看 734关注 0票数 1

我正在使用Angular 8开发一个web应用程序。我只想通过将获得的数据赋给全局变量来访问getData方法之外的输入图像的exif数据。如果我试图在执行function之后访问全局变量,它显示为undefined。下面是提取exif数据的函数:

代码语言:javascript
复制
photodata: any; // global variable
getPhotodata(file) {
    EXIF.getData(file, function() {
      const data = EXIF.getAllTags(this);
      console.log(data); // working
      console.log(data.Make); // working
      console.log(data.Model); // working
      console.log(data.DateTimeOriginal); // working
      this.photodata = data;
      console.log(this.photodata) // working
  });
  }
  console.log(this.photodata) // here it is showing undefined

我已尝试返回数据。但它也不起作用

代码语言:javascript
复制
getPhotodata(file) {
    EXIF.getData(file, function() {
      const data = EXIF.getAllTags(this);
      console.log(data); // working
      console.log(data.Make); // working
      console.log(data.Model); // working
      console.log(data.DateTimeOriginal); // working
      return data;
  });
  }
console.log(getPhotodata(file)) // undefined
EN

回答 1

Stack Overflow用户

发布于 2020-02-14 22:22:45

我知道你现在可能已经解决了这个问题,但是如果异步编程引起你的好奇心,你可能会喜欢我的库exifr。我之所以写它,是因为exif-js现在实际上已经死了(两年多没有维护过了),它相当低效。Exifr是围绕promises和async/await语法构建的,因此您可以这样做:

代码语言:javascript
复制
async function getExif() {
  let output = await exifr.parse(file)
  console.log(data.Make)
  console.log(data.Model)
}

您还可以试用该库的playground并尝试图像及其输出,或者查看repository and docs

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58475828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档