首页 > 解决方案 > 涉及异步功能时如何测量总时间

问题描述

我有一个以这种方式调用的javascript函数

do_work();
setTimeout(do_some_other_work);
do_work();
setTimeout(do_some_other_work);
do_work();

我如何输出在这种情况下花费的总时间?

标签: javascript

解决方案


您可以使用全局变量:一个是开始时间(稍后比较),另一个是通过检查计数器是否处于所需数字do_work()然后do_some_other_work()计算时间差的函数来递增。

所以,像:

var start = new Date(), call_counter = 0;

然后在 and 结束do_work()do_some_other_work()

incrementCounter();

并且有:

function incrementCounter() {
    if ( ++call_counter == 5 ) {
        console.log( ((new Date()) - start) );
    }
}

推荐阅读