Quantcast
Channel: Adobe Community : Popular Discussions - Photoshop Scripting
Viewing all articles
Browse latest Browse all 12244

Debounce w/o setTimeout()?

$
0
0

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


Viewing all articles
Browse latest Browse all 12244

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>