Hi,
I'm looking for a way to implement a Debounce function (see here), like this one:
// Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. If `immediate` is passed, trigger the function on the // leading edge, instead of the trailing. function debounce(func, wait, immediate) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; };
To be used in ScriptUI.
Problem is that we don't have setTimeout in ExtendScript land, and $.sleep is blocking / not cancelable.
There is a working implementation for InDesign, using app.idleTasks, which, again, we don't have in Photoshop so back to square one.
Suggestions?
Thank you!
Davide Barranca