2017-07-21 4 views

Antwort

4

Es funktioniert nicht auf eine Funktion, weil genau so der Mechanismus entworfen wurde. Anrufe an setInterval() geben eine Nummer zurück, die als Kennung für den Timer dient, den der Anruf herstellt. Diese Nummer muss an clearInterval() übergeben werden.

Es wird kein Fehler verursacht, wenn etwas übergeben wird, bei dem es sich nicht um eine Nummer handelt, oder um eine Nummer zu übergeben, die keinen aktiven Timer identifiziert, aber der Anruf hat keine Auswirkungen.

In Ihrem Fall könnte Ihre t() Funktion einfach das Ergebnis des setInterval() Anrufs zurückgeben, und Ihr äußerer Code kann das für später speichern, wie Sie möchten.

1

weil Sie clearInterval auf Referenz für setInterval() sollten.

var interval = setInterval(); 
clearInterval(interval); 
4

Es ist, weil Sie die ID des Intervalls zurückgeben und diese ID löschen müssen.

Nach der Dokumentation:

setInterval gibt ein Intervall-ID, die eindeutig identifiziert die Intervall, so dass Sie es später entfernen, indem clearInterval() aufrufen.

//function that keeps logging 'hello' on the console 
 
var t =()=>{ 
 
    //return the id of the interval 
 
    return setInterval(()=>{ 
 
     console.log('hello') 
 
    },1000) 
 

 
} 
 

 
//get the id of the interval created by the "t" function 
 
var id = t(); 
 
//alerts the id just to see it 
 
alert(id); 
 
//clear it - function will stop executing 
 
clearInterval(id);

Referenzen

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

0

T ist nicht gleich der setInterval zurückgegebene Wert, da Sie nicht einen Wert von Pfeil Funktion zurückzukehren, und don‘ t weise es einem Wert zu. Statt

diese Schnipsel Versuchen:

var t =()=> 
    setInterval(()=>{ 
     console.log('hello') 
    },1000) 

var interval = t(); 
clearInterval(interval); 
Verwandte Themen