我是异步编程的新手,我只是熟悉用 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 的值。关于如何实现这一点的任何想法?谢谢。