簡體   English   中英

RXJS 條碼掃描器

[英]RXJS Barcode scanner

我正在嘗試收聽來自 Javascript(Angular)的條形碼事件。 我的要求是它不應該是一個輸入(所以它不應該一直被聚焦),我的 RXJS stream 應該每次掃描發出一次並排除常規的鍵盤敲擊。

這是我想出的代碼。 它工作得很好,我希望它能幫助任何在未來為此苦苦掙扎的人。

    const down = fromEvent(document, "keydown");

    const up = fromEvent(document, "keyup");

    const scannerKeys = up.pipe(
      filter((e: KeyboardEvent) => e.code !== "ShiftLeft"),
      withLatestFrom(down, (u: KeyboardEvent, d: KeyboardEvent) => ({
        key: `${d.key}`,
        pressTime: u.timeStamp - d.timeStamp,
        e: u,
      })),
      filter((x) => x.pressTime < 5)
    );

    this.scanned = scannerKeys.pipe(
      scan((acc, value) => {
        return value.key !== "Enter" ? acc + value.key : "";
      }, ""),
      filter((x) => x !== ""),
      debounceTime(50)
    );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM