app/javascript/js/helpers/debounce_promise.js

Summary

Maintainability
A
0 mins
Test Coverage
export default (fn, time) => {
  let timerId

  return (...args) => {
    if (timerId) {
      clearTimeout(timerId)
    }

    return new Promise((resolve) => {
      timerId = setTimeout(() => resolve(fn(...args)), time)
    })
  }
}