2016-04-26 19 views
-3

Ich wollte nur fragen, ob es irgendwelche Methoden wie setInterval() gibt, die pausiert werden können, damit ein anderer Befehl stattfinden kann. Ich kodiere ein Ampelsystem und jedes Bild erscheint auf dem Bildschirm (das sind die Lichter) und bleibt für verschiedene Zeitspannen eingeschaltet, deshalb kann ich setInterval() oder setTimeout nicht benutzen, weil es in einer Sequenz spielt.Alternativen zu SetInterval?

+2

Verwenden Sie einfach einen rekursiven Ansatz mit 'setTimeout'. – Bergi

+0

Sie könnten stattdessen eine Schleife verwenden. Ein bisschen mehr Arbeit, aber Timer sind nur ausgefallene Loops. – floor

+1

Sie können die Ausführung einer Funktion nicht pausieren, noch können Sie eine laufende abbrechen. Und damit können Sie eine bestimmte Funktion nicht fortsetzen. Was Sie tun könnten, ist ein Array von Funktionen zu erstellen, die nacheinander ausgeführt werden sollten, damit andere Aufgaben nach jedem von ihnen stattfinden können. –

Antwort

-1

Sie können eine Variable verwenden, um das Verhalten der Intervallfunktion zu steuern.

var enabled = true; 
setInterval(function() { 
    if (!enabled) { 
     return; 
    } 
    // rest of code here 
}, period); 

Dann einige andere Code kann enabled-false gesetzt und die Intervallfunktion effektiv angehalten werden.