我正在运行一个脚本,该脚本不断地输出一个名为rects[0]的值数组。代码如下:
function draw_faces(ctx, rects, sc, max) {
var on = rects.length;
if(on && max) {
jsfeat.math.qsort(rects, 0, on-1, function(a,b){return (b.confidence<a.confidence);})
}
var n = max || on;
n = Math.min(n, on);
var r;
for(var i = 0; i < n; ++i) {
r = rects[i];
ctx.strokeRect((r.x*sc)|0,(r.y*sc)|0,(r.width*sc)|0,(r.height*sc)|0);
if (rects[0].width > 41.5 && rects[0].height > 41.5)
WAIT TIME AND CHECK AGAIN
THEN console.log("face length");
}
}我想做的是在最初的if语句检查rects值之后,我想等待一段时间,然后再次检查这些变量是否仍高于阈值41.5,然后执行一些操作,在本例中为console.log(“面部长度”)。
所以从本质上讲,我需要检查rects[0],然后等待几秒钟,然后再次检查它的值是否高于阈值。
发布于 2013-06-12 12:02:19
你不想要延迟,你想设置一些代码在几秒钟后运行。像这样使用setTimeout:
function draw_faces(ctx, rects, sc, max) {
var on = rects.length;
if(on && max) {
jsfeat.math.qsort(rects, 0, on-1, function(a,b){return (b.confidence<a.confidence);})
}
var n = max || on;
n = Math.min(n, on);
var r;
for(var i = 0; i < n; ++i) {
r = rects[i];
ctx.strokeRect((r.x*sc)|0,(r.y*sc)|0,(r.width*sc)|0,(r.height*sc)|0);
if (rects[0].width > 41.5 && rects[0].height > 41.5) {
setTimeout(function() {
if (rects[0].width > 41.5 && rects[0].height > 41.5) {
console.log("face length");
}
}, 3000);
}
}
}https://stackoverflow.com/questions/17054563
复制相似问题