Skip to content

Instantly share code, notes, and snippets.

@nicoespeon
Last active March 23, 2017 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicoespeon/73f95cbf078f26cac780f360e32dd98b to your computer and use it in GitHub Desktop.
Save nicoespeon/73f95cbf078f26cac780f360e32dd98b to your computer and use it in GitHub Desktop.
Blog - Using Observables to make our app work with barcode scanners
const ENTER_KEY_CODE = 13
const MAX_INTERVAL_BETWEEN_EVENTS_IN_MS = 50
const keyCode$ = Rx.Observable.fromEvent(document, "keypress")
.pluck('keyCode')
const keyCodesBuffer$ = keyCode$
.buffer(keyCode$.debounce(MAX_INTERVAL_BETWEEN_EVENTS_IN_MS))
.filter(isFromScan)
function isFromScan(keyCodes) {
return keyCodes.length > 1 && keyCodes[keyCodes.length - 1] === ENTER_KEY_CODE
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment