我正在尝试使用形状检测API(https://developers.google.com/web/updates/2019/01/shape-detection)并出现错误:
未捕获的SyntaxError:等待仅在异步函数中有效
浏览了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)
)});
此外,在加载了DOM之后,运行以initImageDetection
为前缀的async
,并从paper-button
开始运行。
async initImageDetection() {
...
}
我收到以下错误:
未捕获(承诺)ReferenceError:未定义BarcodeDetector
如何在Polymer 2.x中正确使函数异步?
如何在Polymer 2.x中实例化BarcodeDetector?
答案 0 :(得分:0)
async functionName() {
// function code here
}
是在Polymer中设置异步功能的正确方法。但是,BarcodeDetector
对象隐藏在Chrome中的标志后面,因此必须在chrome://flags
Experimental Web Platform features
中启用后才能使用。