2017-07-10 2 views
0

Ich übe diese einfache Countdown-Funktion in der Konsole und der Code funktioniert, sobald ich fertig schreibe es und drücken Sie die Eingabetaste, aber wenn ich versuche, es erneut aufzurufen (typisierte countDown();), die Konsole gibt mir diese Fehlermeldung,uncaught type error ... ist keine Funktion

"Uncaught TypeError: countDown is not a function".

ich die Funktion in der variablen speichern countDown und wenn ich die Funktion aufgerufen, tippte ich einfach countDown(); ich habe es keinen Tippfehler. Was habe ich falsch gemacht, ist der Code wie unten ...

var timeLeft = 10; 
var countDown = setInterval(function(){ 
    timeLeft--; 
    console.log(timeLeft); 
    if(timeLeft === 0){ 
    clearInterval(countDown) 
    console.log("count down completed") 
    } 
} ,1000); 
+1

Da COUNTDOWN keine Funktion ist, lesen Sie Dokumentation auf das, was der Rückgabewert für einen [setInterval] (https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval#Return_value) Anruf ist –

+0

Danke, ich las das Beispiel und es half. – Sen123

Antwort

0

I save the function in the variable countDown

Nein, Sie _the Ergebnis setInterval in dieser Variablen gespeichert.

setInterval gibt eine Timer-ID zurück, keine Funktion.

Wenn Sie eine Funktion in einer Variablen speichern möchten, müssen Sie die Funktion tatsächlich in der Variablen speichern.

0

Ich denke, die Funktion außerhalb setInterval erklären sollte, ich unten Beispiel für Ihre Referenz zur Verfügung gestellt haben:

var timeLeft = 10; 
var countDown = setInterval(timer, 1000); 

function timer() { 
    console.log(timeLeft); 
    if (timeLeft < 1) { 
     console.log('Count down completed'); 
     clearInterval(countDown); 
     return;   
    } 
    timeLeft -= 1; 
} 
+0

danke für die Hilfe Ihrer Leute, ich habe es. – Sen123

Verwandte Themen