Sha256: 689a3a3091b767a94b16140aa2b5d599b68ea27614f6eaf0d9c6179b1d8c7706

Contents?: true

Size: 855 Bytes

Versions: 12

Compression:

Stored size: 855 Bytes

Contents

export function throttle(fn, delay = 1000) {
  let timeoutId = null

  return (...args) => {
    if (!timeoutId) {
      fn(...args)
      timeoutId = setTimeout(() => timeoutId = null, delay)
    }
  }
}

export function debounce(fn, delay = 1000) {
  let timeoutId = null

  return (...args) => {
    clearTimeout(timeoutId)
    timeoutId = setTimeout(() => fn.apply(this, args), delay)
  }
}

export function nextEventLoopTick() {
  return delay(0)
}

export function onNextEventLoopTick(callback) {
  setTimeout(callback, 0)
}

export function nextFrame() {
  return new Promise(requestAnimationFrame)
}

export function nextEventNamed(eventName, element = window) {
  return new Promise(resolve => element.addEventListener(eventName, resolve, { once: true }))
}

export function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms))
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
css-zero-0.0.50 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.49 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.48 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.47 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.46 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.45 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.44 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.43 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.42 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.41 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.40 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js
css-zero-0.0.39 lib/generators/css_zero/install/templates/app/javascript/helpers/timing_helpers.js