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

回到顶部