【发布时间】:2020-06-13 22:03:20
【问题描述】:
我是异步编程的新手,我只是熟悉用 Promise 代替回调的想法。 我正在尝试实现一个函数(promise)来接受另外两个promise,并且只有在两个promise 都完成的情况下才会返回一个需要更长时间才能完成的promise 的值。 所以基本上我的想法是使用 Date.now() 函数来计算执行一个承诺所需的时间,但是我很难把它写下来,特别是一个包含其他两个承诺的承诺(如果那是什可能),这是我的尝试:
var p1 = new Promise((resolve, reject) => {
let start = Date.now();
setTimeout(() =>
resolve(
{
id: 0,
time: Date.now() - start,
value: 4+3
}
), 500);
})
var p2 = new Promise((resolve, reject) => {
let start = Date.now();
setTimeout(() =>
reject(
{
id: 1,
time: Date.now() - start,
value: 7+3
}
), 800);
})
这只是一个想法,promise p1, p2 应该作为 promise 'slower' 的参数给出,我对 Date.now() 所做的事情应该以某种方式围绕对这些 Promise 的调用,然后我希望计算两个 Promise 的运行时间,然后返回较慢的 Promise 的值。 关于如何实现这一点的任何想法?谢谢。
【问题讨论】:
标签: es6-promise asynchronous-javascript