1

我正在运行一个脚本,该脚本不断输出一个名为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");

            }
        }

我想要做的是在检查 rects[0] 值的初始 if 语句之后,我想等待一段时间,然后再次检查这些变量是否仍高于 41.5 的阈值,然后执行一些操作,在本例中为 console.log( “脸长”)。

所以基本上我需要检查rects[0]然后等待几秒钟然后再次检查它的值是否高于阈值。

4

1 回答 1

0

你不想延迟,你想设置一些代码在几秒钟后运行。像这样使用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);
            }
        }
    }
于 2013-06-12T04:02:18.633 回答