【问题标题】:Determine how long a promise took [duplicate]确定承诺需要多长时间[重复]
【发布时间】:2021-08-08 05:31:58
【问题描述】:

我将 q 库用于承诺。我有以下代码

Q.all([thumbnailPromise, createSnapshotPromise]).spread((thumbnailRep, snapshotRep) => {

我如何确定每个承诺需要多长时间?具体来说,thumbnailPromise 和 createSnapshotPromise 分别花了多长时间?

请注意,我想保持 Promise 并行运行。

谢谢!

【问题讨论】:

    标签: javascript node.js promise q


    【解决方案1】:

    我猜你可以写一个包装你的承诺的函数:

    const timedPromise = async (promFac) => {
        const start = performance.now();
        const returnValue = await promFac();
        return {
            value: returnValue,
            elapsed: performance.now() - start;
        }
    }
    

    并像这样使用它:

    Q.all([
        timedPromise(() => thumbnailPromise) , 
        timedPromise(() => createSnapshotPromise)])
      .spread((thumbnailRep, snapshotRep) => {
        console.log(`thumbnailProm took ${thumbnailRep.elapsed}, returned ${thumbnailRep.value}`);
      })
    

    未经测试。

    【讨论】:

      【解决方案2】:

      您可以使用console.time()MDN reference 另一种选择是使用hrtime

      Promise 是函数,如果你不能直接访问这些函数,你可以将它们包装成一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多