Given two promises promise1 and promise2, return a new promise. promise1 and promise2 will both resolve with a number. The returned promise should resolve with the sum of the two numbers.
Input:
promise1 =new Promise(resolve => setTimeout(()=> resolve(2),20)),promise2 =new Promise(resolve => setTimeout(()=> resolve(5),60))Output: 7Explanation: The two input promises resolve with the values of 2 and 5 respectively. The returned promise should resolve with a value of 2+5=7. The time the returned promise resolves is not judged forthis problem.
Input:
promise1 =new Promise(resolve => setTimeout(()=> resolve(10),50)),promise2 =new Promise(resolve => setTimeout(()=> resolve(-12),30))Output: -2Explanation: The two input promises resolve with the values of 10 and -12 respectively. The returned promise should resolve with a value of 10+-12=-2.
The key idea is to wait for both promises to resolve, then add their results. Promise.all allows us to run both promises in parallel and get their resolved values as an array, which we can sum.