Tach!
Die Implementation gefällt mir nicht richtig.
Da bin ich ganz bei Dir, aber was ist die Alternative?
Das weiß ich auch nicht. Wenn ich eine solche Funktionalität benötige, habe ich RxJS zur Hand, da ist das eingebaut.
Lass den Teil immediate/useFirstCall einfach weg, den brauchen wir nicht. Es geht hier ja nicht darum einen full-flavored Debouncer vorzustellen.
Es gibt da auch noch die Unterscheidung zwischen Throttling und Debouncing. Wir brauchen nur den Debounce-Teil, nicht das Throttling. Besser aufteilen als überladene Funktionen.
dedlfix.