相关疑难解决方法(0)

如何衡量承诺的执行时间?

我正在尝试编写一个测量另一个函数执行时间的函数:

export class Profiler {
    public measureSyncFunc(fn: () => any): Promise<number> {
        return new Promise<number>((resolve, reject) => {
            let elapsed = 0;

            let intervalId = window.setInterval(() => {
                elapsed += 1; // this is never called
            }, 1);

            this.execFunc(fn)
                .then((result: any) => {
                    window.clearInterval(intervalId);
                    resolve(elapsed);
                });
        });
    }

    private execFunc(fn: () => any): Promise<any> {
        return new Promise<any>((resolve, reject) => {
            resolve(fn());
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我就这样使用它:

let array = generateRandomArray(100000);

instance.measureSyncFunc(bubbleSort(array))
    .then((elapsed: number) => {
        console.log(`end session: ${elapsed} seconds`);
        resolve(); …
Run Code Online (Sandbox Code Playgroud)

javascript typescript es6-promise

9
推荐指数
2
解决办法
5278
查看次数

标签 统计

es6-promise ×1

javascript ×1

typescript ×1