CoreID/app/assets/app/service/Utility.service.js
2020-05-03 20:16:54 -05:00

25 lines
551 B
JavaScript

class UtilityService {
_debounce_timeouts = {}
uuid() {
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
)
}
debounce(handler = () => {}, delay = 500) {
let timeout = null
return (...args) => {
clearTimeout(timeout)
timeout = setTimeout(() => {
handler(...args)
}, delay)
}
}
}
const utility = new UtilityService()
export { utility }