无法将 tesseract 函数的结果值存储到异步函数内的全局变量

赛亚姆·卡普尔

我正在使用 tesseract JS 将图像转换为文本格式。转换成功,我可以在控制台中打印出来。但是我无法在函数范围之外获取此文本。

我尝试将文本分配给全局变量,然后打印它,但没有任何反应。

(async () => {

tesseract.process('new.png', (err, text) => {
    if(err){return console.log("An error occured: ", err); }
    console.log("Recognized text:",text);
    });

})();

需要能够在函数外获取文本的值并在另一个异步调用中再次使用它。

Aritra Chakraborty

如果您使用异步操作,例如Promise, callbackasync-await则不能再使用同步流。

可以这样想,异步函数是将来要完成的操作,您希望从中获取一些值,然后在第一个异步函数完成之前无法获取该值。

话虽如此,如果您不想使用 Promise 链,则CAN使用Promises(似乎)就像同步函数一样aysnc-await所以你需要承诺这个tesseract.process功能:

const utils = require('util');

(async () => {
  const tessProcess = utils.promisify(tesseract.process);
  try {
    const text = await tessProcess('new.png');
    console.log("Recognized text:", text);
  } catch (err) {
    console.log("An error occured: ", err);
  }
})();

编辑:检查代码片段后:

const utils = require('util');
(async () => {
  const browser = await puppeteer.launch({headless: false})
  const page = await browser.newPage()
  const tessProcess = utils.promisify(tesseract.process);
  await page.setViewport(viewPort)
  await page.goto('example.com')
  await page.screenshot(options)
  const text = await tessProcess('new.png');
  //YOU CAN USE text HERE/////////////
  await page.$eval('input[id=companyID]', (el, value) => el.value = value, text);//here too

  await browser.close()
})()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将值从匿名函数存储到全局变量中-Javascript和量角器

来自分类Dev

将异步函数的结果保存到全局变量

来自分类Dev

如何将Ajax JSON对象存储到全局变量中以在函数外部访问

来自分类Dev

Tesseract OCR无法将文本正确拆分为不同的结果集

来自分类Dev

无法将值存储在全局变量中

来自分类Dev

PHP无法将全局变量导入到类内部的函数中

来自分类Dev

无法更改函数内的全局变量(JavaScript)

来自分类Dev

无法通过函数将值分配给全局变量(Linux上的共享库注入)

来自分类Dev

将函数的值传递给全局变量

来自分类Dev

将函数结果存储到变量中

来自分类Dev

Tesseract无法识别明文

来自分类Dev

无法安装tesseract

来自分类Dev

tesseract-ocr可以将结果放入STDOUT吗?

来自分类Dev

使用OpenCV边界框将图像传递到tesseract OCR

来自分类Dev

无法修改函数内部的全局变量

来自分类Dev

无法从函数更新全局变量

来自分类Dev

函数无法识别全局变量

来自分类Dev

无法更改函数中的全局变量

来自分类Java

将脚本任务的结果存储到全局变量/过程变量中

来自分类Dev

Tesseract无法读取某些数字

来自分类Dev

无法生成 Tesseract 训练数据

来自分类Dev

无法将本地变量绑定到嵌套全局变量

来自分类Dev

Tesseract无法加载任何语言(节点tesseract.js)

来自分类Dev

如何在python中定义空变量或将值从函数传递给全局变量?

来自分类Dev

将值从.change函数中的变量传递和更新为全局变量Jquery

来自分类Dev

如何将函数的结果存储到变量中?

来自分类Dev

PHP:将 JavaScript 函数的结果存储到 PHP 变量中

来自分类Dev

全局变量在函数中提供其值后失去其值。无法在该函数外访问其值

来自分类Dev

除初始化外,无法在函数中访问全局变量的值

Related 相关文章

  1. 1

    无法将值从匿名函数存储到全局变量中-Javascript和量角器

  2. 2

    将异步函数的结果保存到全局变量

  3. 3

    如何将Ajax JSON对象存储到全局变量中以在函数外部访问

  4. 4

    Tesseract OCR无法将文本正确拆分为不同的结果集

  5. 5

    无法将值存储在全局变量中

  6. 6

    PHP无法将全局变量导入到类内部的函数中

  7. 7

    无法更改函数内的全局变量(JavaScript)

  8. 8

    无法通过函数将值分配给全局变量(Linux上的共享库注入)

  9. 9

    将函数的值传递给全局变量

  10. 10

    将函数结果存储到变量中

  11. 11

    Tesseract无法识别明文

  12. 12

    无法安装tesseract

  13. 13

    tesseract-ocr可以将结果放入STDOUT吗?

  14. 14

    使用OpenCV边界框将图像传递到tesseract OCR

  15. 15

    无法修改函数内部的全局变量

  16. 16

    无法从函数更新全局变量

  17. 17

    函数无法识别全局变量

  18. 18

    无法更改函数中的全局变量

  19. 19

    将脚本任务的结果存储到全局变量/过程变量中

  20. 20

    Tesseract无法读取某些数字

  21. 21

    无法生成 Tesseract 训练数据

  22. 22

    无法将本地变量绑定到嵌套全局变量

  23. 23

    Tesseract无法加载任何语言(节点tesseract.js)

  24. 24

    如何在python中定义空变量或将值从函数传递给全局变量?

  25. 25

    将值从.change函数中的变量传递和更新为全局变量Jquery

  26. 26

    如何将函数的结果存储到变量中?

  27. 27

    PHP:将 JavaScript 函数的结果存储到 PHP 变量中

  28. 28

    全局变量在函数中提供其值后失去其值。无法在该函数外访问其值

  29. 29

    除初始化外,无法在函数中访问全局变量的值

热门标签

归档