2014-02-24 22 views
0

我有一个函数在这里,我的问题是:我如何运行console.log一次,并调用im函数继续运行?想运行console.log一次

function zetTemperatuur() { 

    var handmatigeTemp = document.getElementById("gewenstetemperatuur").value; 

    var myInterval = setInterval(function() { 
     if (handmatigeTemp < temperatuur) { 
      console.log("De motor van de wijnkoeler begint te draaien en zal geleidelijk aan dalen naar de gewenste temperatuur."); 

      trekAf(); 
     } else if (handmatigeTemp == temperatuur) { 
      console.log("Uw Wijnkoeler is op de juiste temperatuur, namelijk " + temperatuur + ". De motor zal nu uitschakelen om energie te besparen."); 
      clearInterval(myInterval); 
     } else { 
      clearInterval(myInterval); 
     } 
    }, 3000); 
} 
+3

'trekAf'当然不是正确的方法来命名该功能:P – 2014-02-24 14:04:19

+3

它的荷兰语如此 – user3341530

+0

'trekAf'的问题是它太泛化。 –

回答

2

你可以只使用一个标志:

function zetTemperatuur() { 

       var handmatigeTemp = document.getElementById("gewenstetemperatuur").value; 
       var flag = false; 

       var myInterval = setInterval(function() { 
        if (handmatigeTemp < temperatuur) { 
         if (flag == false) { 
          flag = true; 
          console.log("De motor van de wijnkoeler begint te draaien en zal geleidelijk aan dalen naar de gewenste temperatuur."); 
         } 

         trekAf(); 
        } 
        else if (handmatigeTemp == temperatuur) { 
         console.log("Uw Wijnkoeler is op de juiste temperatuur, namelijk " + temperatuur + ". De motor zal nu uitschakelen om energie te besparen."); 
         clearInterval(myInterval); 
        } 

        else { 
         clearInterval(myInterval); 
        } 
         }, 3000); 
      } 

编辑

较短的版本:

function zetTemperatuur() { 

       var handmatigeTemp = document.getElementById("gewenstetemperatuur").value; 
       var flag = false; 

       var myInterval = setInterval(function() { 
        if (handmatigeTemp < temperatuur) { 
         (!flag) && (flag = true); 
         console.log("De motor van de wijnkoeler begint te draaien en zal geleidelijk aan dalen naar de gewenste temperatuur."); 

         trekAf(); 
        } 
        else if (handmatigeTemp == temperatuur) { 
         console.log("Uw Wijnkoeler is op de juiste temperatuur, namelijk " + temperatuur + ". De motor zal nu uitschakelen om energie te besparen."); 
         clearInterval(myInterval); 
        } 

        else { 
         clearInterval(myInterval); 
        } 
         }, 3000); 
      } 
+0

谢谢老兄完美作品 – user3341530

+0

刚加了个短版:) – htatche

+0

超级!!! Thx :) – user3341530

2

也许是使用标志,如:

var logged = false; 

/*In your function*/ 
if(!logged) 
{ 
    console.log(something); 
    logged = true; 
} 
0

解决方案多console.logs

var flag = array(); 
var logger = function(id, message) { 
    if(!flag[id]) { 
     console.log(message); 
     flag[id] = true; 
    } 
} 
var yourFunction = function(something) { 
    // your code here 
    if(something) { 
     logger(1, "german german deutch"); 
    } 
    else { 
     logger(2, "another german"); 
    } 
} 
0

做了一个功能这一点。

console.logOnce = function(msg) { 
    window.__loggedFunctions = window.__loggedFunctions || []; 
    var caller = arguments.callee.caller.toString(); 
    for (var i = 0; i < __loggedFunctions.length; i++) { 
    if (caller == __loggedFunctions[i]) return; 
    } 
    window.logOnce = arguments; 

    for (var i = 0; i < arguments.length; i++) { 
    console.log(arguments[i]); 
    } 

    __loggedFunctions.push(caller); 
} 
0

使用_.once

function log() { 
    console.log('message') 
} 
var _log = _.once(log); 
_log(); 
_log(); 

'消息' 将被记录一次。