[英]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.