setTimeout问题Javascript
我在尝试递归调用某个方法时遇到了一个奇怪的错误。setTimeout问题Javascript
它就好像编译器跳过了setTimeout函数。
我从另一个函数调用函数来启动递归,但setTimeout不会再次调用startFaceTracking()。
我可能是愚蠢的,但有人可以指出这个问题?
我已经试过了,
function startFaceTracking() { var eventHit = false;
if(!eventHit){
setTimeout(startFaceTracking,500);
}
}
,并提前此
function startFaceTracking() { var eventHit = false;
if(!eventHit){
setTimeout(function(){startFaceTracking();},500);
}
}
感谢,
回答:
您可以使用立即调用的函数表达式(也称为IIFE)是这样的:
(function startFaceTracking() { var eventHit = false;
if(!eventHit){
setTimeout(startFaceTracking,500);
}
})();
你可以在这里阅读更多:Ben Alman about Immediately-Invoked Function Expression (IIFE)
回答:
你超时内的功能,你也不会调用该函数,所以超时从不首先发起。调用一次,然后它会递归。
function startFaceTracking() { console.log("Starting face tracking!")
var eventHit = false;
if (!eventHit) {
console.log("Starting timeout...");
setTimeout(startFaceTracking, 500);
}
}
startFaceTracking()
回答:
问题当时我正在使用setTimeout中的setTimeout。
我已经严重格式化了我的Java脚本并测试了函数。
Here is the link to the answer.
对不起乱身边的每一个人。我本可以更好地描述我的问题。
再次感谢,
以上是 setTimeout问题Javascript 的全部内容, 来源链接: utcz.com/qa/263532.html