2017-07-10 3 views
0

Je pratique cette fonction de compte à rebours simple dans la console et le code fonctionne une fois que j'ai terminé l'écriture et appuyez sur Entrée, mais quand j'essaie de l'appeler à nouveau (tapé countDown();), le console me donne ce message d'erreur indiquanterreur de type uncaught ... n'est pas une fonction

"Uncaught TypeError: countDown is not a function".

je sauve la fonction dans la variable countDown et quand j'ai appelé la fonction, je simplement tapé countDown(); j'ai vérifié il n'y a pas d'erreur de frappe. Qu'est-ce que je fait de mal, le code est comme ci-dessous ...

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

Parce que Countdown est pas une fonction, lire la documentation sur ce que la valeur de retour pour une [setInterval] (https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval#Return_value) appel est –

+0

Merci, j'ai lu l'exemple et cela m'a aidé. – Sen123

Répondre

0

I save the function in the variable countDown

Non, sauvé _le résultat de setInterval dans cette variable.

setInterval renvoie un ID de temporisateur, pas une fonction.

Si vous souhaitez enregistrer une fonction dans une variable, vous devez réellement enregistrer la fonction dans la variable.

0

Je pense que vous devez déclarer la fonction en dehors setInterval, j'ai fourni exemple ci-dessous pour votre référence:

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

merci pour l'aide de vos gars, je l'ai eu. – Sen123