TypeScript中是否有任何秒表实现?

时间:2017-05-22 21:22:47

标签: typescript stopwatch

我想对在 TypeScript 上编写的网站上的一些关键功能进行性能测量。我想知道 TypeScript 中是否有类似于.NET System.Diagnostics.Stopwatch类的秒表的实现?

4 个答案:

答案 0 :(得分:2)

我有一个简单的实现here

/**
 * Simple timer
 */
export function timer() {
    let timeStart = new Date().getTime();
    return {
        /** <integer>s e.g 2s etc. */
        get seconds() {
            const seconds = Math.ceil((new Date().getTime() - timeStart) / 1000) + 's';
            return seconds;
        },
        /** Milliseconds e.g. 2000ms etc. */
        get ms() {
            const ms = (new Date().getTime() - timeStart) + 'ms';
            return ms;
        }
    }
}

用法

const howLong = timer();
// do some stuff
console.log(howLong.ms);

还有很多其他实现,以及你可以看到的内置console.time函数。

答案 1 :(得分:0)

基于上述basarat's的答案,它已经内置在控制台中。

console.time('myTask');
// code to time here
console.timeEnd('myTask');
console.timeLog('myTask');

答案 2 :(得分:0)

此秒表用typescript编写,并带有类型定义。 https://github.com/vcfvct/stopwatch-node

答案 3 :(得分:0)

由于 OP 专门要求类似于 .NET 的秒表的东西,@tsdotnet/stopwatch 包可能是一个不错的选择。

首先,在您的 npm 项目中安装软件包:npm i @tsdotnet/stopwatch

代码示例:

import Stopwatch from "@tsdotnet/stopwatch"

(async () => {
const stopwatch = Stopwatch.startNew();

    // Simulates a delay of 1000 milliseconds.
    await new Promise(r => setTimeout(r, 1000));

    console.log(stopwatch.elapsedMilliseconds);
})();

请注意,由于在此示例中使用了 promise,您的 tsconfig.json 需要至少定位到 es2015。由于 @tsdotnet/stopwatch,这不是必需的。