我在这里有一个功能,我的问题是:如何运行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);
}
答案 0 :(得分:3)
也许可以使用像这样的标志:
var logged = false;
/*In your function*/
if(!logged)
{
console.log(something);
logged = true;
}
答案 1 :(得分: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);
}
答案 2 :(得分:1)
使用_.once
function log() {
console.log('message')
}
var _log = _.once(log);
_log();
_log();
'message'将被记录一次。
答案 3 :(得分: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");
}
}
答案 4 :(得分: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);
}
答案 5 :(得分:0)