如何使 Polymer 2.x 函数异步

How to make Polymer 2.x Function async

我正在尝试使用形状检测 API (https://developers.google.com/web/updates/2019/01/shape-detection),但出现错误:

Uncaught SyntaxError: await is only valid in async function

通过 Polymer 2.x 文档 (https://polymer-library.polymer-project.org/2.0/api/namespaces/Polymer.Async) 后,我得到以下信息:

ready() {
  super.ready();
  this.initImageDetection();
}

initImageDetection() {
  const barcodeDetector = new BarcodeDetector({
    formats: [
      'code_128'
    ]
  });
  try {
    const barcodes = await barcodeDetector.detect(image);
    barcodes.forEach(barcode => console.log(barcode));
  } catch (e) {
    console.error('Barcode detection failed:', e);
  }
}

此模式也因同样的错误而失败:

this.async(() => {
  const barcodes = await barcodeDetector.detect(image)
  barcodes.forEach(barcode => console.log(barcode)
)});

此外,运行 initImageDetection 前缀为 async 和 运行 来自 paper-button 加载 DOM 后。

async initImageDetection() {
  ...
}

我收到以下错误:

Uncaught (in promise) ReferenceError: BarcodeDetector is not defined

如何在 Polymer 中正确地使函数异步 2.x?

如何在 Polymer 中实例化 BarcodeDetector 2.x?

async functionName() {
  // function code here
}

是在 Polymer 中设置异步函数的正确方法。但是,BarcodeDetector 对象隐藏在 Chrome 中的标志后面,因此必须在 chrome://flags Experimental Web Platform features 中启用才能使用。