列表

详情


2723. 添加两个 Promise 对象

给定两个 promise 对象 promise1promise2,返回一个新的 promise。promise1promise2 都会被解析为一个数字。返回的 Promise 应该解析为这两个数字的和。

 

示例 1:

输入:
promise1 = new Promise(resolve => setTimeout(() => resolve(2), 20)), 
promise2 = new Promise(resolve => setTimeout(() => resolve(5), 60))
输出:7
解释:两个输入的 Promise 分别解析为值 2 和 5。返回的 Promise 应该解析为 2 + 5 = 7。返回的 Promise 解析的时间不作为判断条件。

示例 2:

输入:
promise1 = new Promise(resolve => setTimeout(() => resolve(10), 50)), 
promise2 = new Promise(resolve => setTimeout(() => resolve(-12), 30))
输出:-2
解释:两个输入的 Promise 分别解析为值 10 和 -12。返回的 Promise 应该解析为 10 + -12 = -2。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
/** * @param {Promise} promise1 * @param {Promise} promise2 * @return {Promise} */ var addTwoPromises = async function(promise1, promise2) { }; /** * addTwoPromises(Promise.resolve(2), Promise.resolve(2)) * .then(console.log); // 4 */

javascript 解法, 执行用时: 68 ms, 内存消耗: 41.2 MB, 提交时间: 2023-06-10 19:33:20

/**
 * @param {Promise} promise1
 * @param {Promise} promise2
 * @return {Promise}
 */
var addTwoPromises = async function(promise1, promise2) {
    return new Promise((resolve, reject) => {
        Promise.all([promise1, promise2]).then(([a, b]) => {
            resolve(a + b);
        }).catch(reject);
    });
};

/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

javascript 解法, 执行用时: 44 ms, 内存消耗: 40.9 MB, 提交时间: 2023-06-10 19:32:57

/**
 * @param {Promise} promise1
 * @param {Promise} promise2
 * @return {Promise}
 */
var addTwoPromises = async function(promise1, promise2) {
    const [a, b] = await Promise.all([promise1, promise2]);
    return a + b;
};

/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

javascript 解法, 执行用时: 72 ms, 内存消耗: 41.3 MB, 提交时间: 2023-06-10 19:32:35

/**
 * @param {Promise} promise1
 * @param {Promise} promise2
 * @return {Promise}
 */
var addTwoPromises = async function(promise1, promise2) {
    return await Promise.all([promise1, promise2]).then(([a, b]) => a + b);
};

/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

javascript 解法, 执行用时: 72 ms, 内存消耗: 40.9 MB, 提交时间: 2023-06-10 19:32:21

/**
 * @param {Promise} promise1
 * @param {Promise} promise2
 * @return {Promise}
 */
var addTwoPromises = async function(promise1, promise2) {
    return await promise1 + await promise2;
};

/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

typescript 解法, 执行用时: 68 ms, 内存消耗: 42.3 MB, 提交时间: 2023-06-10 19:31:58

async function addTwoPromises(promise1: Promise<number>, promise2: Promise<number>): Promise<number> {
    return new Promise((resolve, reject) => {
        Promise.all([promise1, promise2]).then(([a, b]) => {
            resolve(a + b)
        }).catch(reject)
    })
};
/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

typescript 解法, 执行用时: 68 ms, 内存消耗: 42.4 MB, 提交时间: 2023-06-10 19:31:40

async function addTwoPromises(promise1: Promise<number>, promise2: Promise<number>): Promise<number> {
    const [a, b] = await Promise.all([promise1, promise2])
    return a + b
};
/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

typescript 解法, 执行用时: 72 ms, 内存消耗: 42.4 MB, 提交时间: 2023-06-10 19:31:24

async function addTwoPromises(promise1: Promise<number>, promise2: Promise<number>): Promise<number> {
    return await Promise.all([promise1, promise2]).then(([a, b]) => a + b)
};
/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

typescript 解法, 执行用时: 80 ms, 内存消耗: 42.4 MB, 提交时间: 2023-06-10 19:31:07

async function addTwoPromises(promise1: Promise<number>, promise2: Promise<number>): Promise<number> {
    return await promise1 + await promise2
};
/**
 * addTwoPromises(Promise.resolve(2), Promise.resolve(2))
 *   .then(console.log); // 4
 */

上一题