发生错误时,我需要播放独特的声音。该错误是由于快速输入的大约 200 个条码中的一个出现问题所致。事件队列似乎首先处理键盘输入(条形码扫描仪模拟),然后播放我的声音。因此,如果条形码被快速扫描,错误声音会留在队列中,被下一次扫描撞到。
我可以操纵队列的优先级吗?
发生错误时,我需要播放独特的声音。该错误是由于快速输入的大约 200 个条码中的一个出现问题所致。事件队列似乎首先处理键盘输入(条形码扫描仪模拟),然后播放我的声音。因此,如果条形码被快速扫描,错误声音会留在队列中,被下一次扫描撞到。
我可以操纵队列的优先级吗?
Javascript 不是多线程的,所以选项 2 不起作用。而且我怀疑您所说的事件队列是操作系统的事件队列,如果有的话,它不太可能从浏览器访问。
除此之外,我在理解您的问题时遇到了一些麻烦。什么是发出错误声音?它是keyup
, etc 事件还是返回错误代码或其他内容的服务器端验证?
我可以从您的问题中猜测是用户在听到错误声音时停止扫描。如果这是真的,为什么要等待用户停止扫描。
您可以执行以下任何操作。
一旦发生错误,停止输入数据。你可以设置'keypress'返回false。您也可以在按键事件上设置一个缓冲区,该缓冲区首先存储输入数据,然后返回 false。这样,您将在发生错误后进行数据处理。
如果您尝试延迟扫描(使用setTimeout()
),让声音在它们之间开始和结束,该怎么办?