Как сделать функцию Polymer 2.x асинхронной - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь использовать API обнаружения формы (https://developers.google.com/web/updates/2019/01/shape-detection) и получаю сообщение об ошибке:

Uncaught SyntaxError: await действительна только в асинхронной функции

После просмотра документов 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 (в обещании) ReferenceError: BarcodeDetector не определен

Как правильно сделать функцию асинхронной вPolymer 2.x?

Как создать экземпляр BarcodeDetector в Polymer 2.x?

1 Ответ

0 голосов
/ 15 февраля 2019
async functionName() {
  // function code here
}

Правильный способ установки асинхронных функций в Polymer.Однако объект BarcodeDetector скрыт за флагом в Chrome, поэтому его необходимо включить в chrome://flags Experimental Web Platform features перед использованием.

...