2017-05-24 2 views
0

Ich schreibe eine Knotenfunktion, deren Ausführungen nicht zu nahe an der Zeit sein sollen (sagen wir 5 Sekunden).Wie erzwinge ich eine minimale Verzögerungszeit zwischen den Funktionsausführungen?

Ich muss die minimale Verzögerung innerhalb die Funktion erzwingen, und nicht auf der anrufenden Seite, da sein Benutzer nichts über die Verzögerung wissen sollte.
Dies ist der Grund, warum ich nicht Logik ähnlich wie delay oder delayed Knotenmodule ...

Bitte beachte, dass ich nicht einfach setTimeout() wickle den Funktionscode entweder verwenden kann, da ich eine minimale Verzögerung bei Hinrichtungen erzwingen möchte (Dh: die erste Ausführung sollte sofort beginnen).

+0

Sie können einfach setTimeout verwenden ... –

+1

Was Sie suchen, ist eine Drosselfunktion. Check out https://StackOverflow.com/Questions/27078285/Simple-Throttle-in-Js für eine Funktion, in die Sie Ihre Funktion, zusammen mit einer Drosselzeit übergeben können. –

+0

@Jonas w: nein, kann ich nicht: die Funktion könnte 100 mal im selben Moment aufgerufen werden: nach 5 Sekunden sollte es 100 Ausführungen zusammen starten ... – MarcoS

Antwort

1

Haben Sie sich bottleneck angesehen? Vielleicht möchtest du deine Funktion einpacken?

+0

Danke. Wenn ich aus irgendeinem Grund versage, Arnav Aggarwals vorgeschlagenes Gas zu verwenden, werde ich einen Flaschenhals versuchen ... – MarcoS

+0

Die Drosselungslösung hat nicht für mich funktioniert. Engpass Limiter war ein Kinderspiel. – MarcoS

Verwandte Themen