我怎样才能减慢从 QR 扫描仪获得的读数?

How can I slow down readings I get from a QR Scanner?

这是我的第一个 post。 读者问候。

所以我对编码还很陌生,我已经在我的前端实现了这段代码,一次成功的扫描向我的 python API 发送了一个 GET 请求以从数据库中获取数据..但是这个脚本每秒扫描几次二维码(不仅如此,它也会提交)。

所以我的问题是我怎样才能减慢速度,比如说在成功扫描后超时 2 秒?

 function onScanSuccess(decodedText, decodedResult) {
    // Handle on success condition with the decoded text or result.
    console.log(`Scan result: ${decodedText}`, decodedResult);
    $('#search').val(decodedText);
    $('#frm').submit();
}

var html5QrcodeScanner = new Html5QrcodeScanner(
    "reader", { fps: 10, qrbox: 250 });
html5QrcodeScanner.render(onScanSuccess);
});

编辑:我没说我没有写这个,我不知道如何在 Typescript 或 Javascript 中进行超时,甚至不知道在哪里。

感谢您抽出宝贵时间:)

这直接取自 html5QrcodeScanner 示例。成功后会更新结果,如果没有扫描到新结果,则不会更新结果

var resultContainer = document.getElementById('qr-reader-results');
var lastResult, countResults = 0;

function onScanSuccess(decodedText, decodedResult) {
    if (decodedText !== lastResult) {
        ++countResults;
        lastResult = decodedText;
        // Handle on success condition with the decoded message.
        console.log(`Scan result ${decodedText}`, decodedResult);
    }
}

var html5QrcodeScanner = new Html5QrcodeScanner(
    "qr-reader", { fps: 10, qrbox: 250 });
html5QrcodeScanner.render(onScanSuccess);

但这不会阻止您的设备扫描,它只是不会更新结果,因为根据我对您问题的理解,这就足够了,但是如果您想在成功扫描后完全停止相机/扫描过程,你可以进入图书馆的一点高级部分

import {Html5Qrcode} from "html5-qrcode"

const html5QrCode = new Html5Qrcode("reader");

html5QrCode.stop().then((ignore) => {
  // QR Code scanning is stopped.
}).catch((err) => {
  // Stop failed, handle it.
});

这样做也意味着你需要从专业模式实现整个过程,你可以参考here专业模式