javascript - 从异步函数中获取变量
问题描述
我正在使用以下 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)
}
控制台中的页数是正确的,但我不知道如何从阅读器的范围中提取该数字,以便我可以在其他地方使用它。我已阅读如何从异步调用返回响应,但我不明白如何为我的案例实现它
解决方案
将其包装在一个承诺中并解决您想要的值:
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
});
推荐阅读
- python - Python x Tweepy:如何从列表中包含的所有用户中提取推文
- android - 从 Intent.ACTION_GET_CONTENT 读取 Uri 是否需要 READ_EXTERNAL_STORAGE 权限
- javascript - 强连通分量算法
- oop - 优化护士分配
- django - 在选择 django orm 中进行多项选择
- encryption - 为什么 BCrypt 对彩虹表特别有效?
- neo4j - 根据节点属性创建订单关系
- javascript - 如何在另一个组件的渲染方法中渲染存储在数组中的 React 组件
- pytorch - pytorch 0.4.0 广播在优化器中不起作用
- python - 在 Choregraphe 的 Python 脚本框中订阅和取消订阅 ALVideoDevice 不起作用