【问题标题】:Determine how long javascript promise took确定 javascript 承诺花费了多长时间
【发布时间】:2018-02-08 22:07:10
【问题描述】:

有谁知道我可以确定在Promise.all([...]) 中执行每个承诺需要多长时间?

提前致谢!

【问题讨论】:

标签: javascript promise


【解决方案1】:

您可以创建自己的 Promise.all 函数。

下面是一个示例,它在返回的数组中返回每个承诺的时间,该数组也包含承诺的结果,但当然在这个演示中我的wait 函数没有任何返回。

function wait(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}

async function myPromiseAll(promises) {
  const starttime = new Date().getTime();
  const timings = [];
  promises.forEach((prom, ix) => {
    prom.then(() => {
      timings[ix] = new Date().getTime() - starttime;
    });
  });
  const result = await Promise.all(promises);
  return {result, timings};
}

async function run() {
  console.log("Starting stuff.");
  const ret = await myPromiseAll([
    wait(1000), wait(2000)]);
  console.log(ret.timings);
  // console.log(ret.result); result of promises
}

run();

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2015-08-02
    相关资源
    最近更新 更多