首页 > 解决方案 > 从异步函数中获取变量

问题描述

我正在使用以下 javascript 解决方案来获取文件的页数:

const reader = new FileReader()
reader.readAsBinaryString(file)
reader.onloadend = function () {
 const count = reader.result.match(/\/Type[\s]*\/Page[^s]/g).length
 console.log('Number of Pages:', count)
}

控制台中的页数是正确的,但我不知道如何从阅读器的范围中提取该数字,以便我可以在其他地方使用它。我已阅读如何从异步调用返回响应,但我不明白如何为我的案例实现它

标签: javascript

解决方案


将其包装在一个承诺中并解决您想要的值:

function getPageNumber() {
  return new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.readAsBinaryString(file)
    reader.onloadend = function () {
       const count = reader.result.match(/\/Type[\s]*\/Page[^s]/g).length
       console.log('Number of Pages:', count);
      resolve(count);
    }
  }
}

getPageNumber().then(count => {
  // here, now you have count
});


推荐阅读