当前位置: 首页 > news >正文

2723. 两个 Promise 对象相加

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

给定两个 promise 对象 promise1 和 promise2,返回一个新的 promise。promise1 和 promise2 都会被解析为一个数字。返回的 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。

提示:

  • promise1 和 promise2 都是被解析为一个数字的 promise 对象

解题思路

接受两个Promise作为参数,并返回一个新的Promise。这个新的Promise在两个输入Promise都成功解决后,将它们的结果相加并解决为最终的结果。

具体来说,代码中的addTwoPromises函数使用Promise.all方法来等待两个输入Promise都完成。一旦两个Promise都成功解决,Promise.all返回一个包含两个Promise结果的数组。然后,通过then方法注册的回调函数,将两个结果相加,并使用resolve方法解决新的Promise,将相加的结果作为最终结果。

AC代码

/*** @param {Promise} promise1* @param {Promise} promise2* @return {Promise}*/
var addTwoPromises = async function(promise1, promise2) {return new Promise(resolve=>{Promise.all([promise1,promise2]).then(res=>{resolve(res[0] + res[1]);})});
};/*** addTwoPromises(Promise.resolve(2), Promise.resolve(2))*   .then(console.log); // 4*/

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

http://www.lryc.cn/news/289942.html

相关文章:

  • 【方法论】费曼学习方法
  • Transformer模型 | Pytorch实现Transformer模型进行时间序列预测
  • Git推送大量内容导致http 413错误
  • pytest框架的基本使用
  • C++STL之map、set的使用和模拟实现
  • 100天精通鸿蒙从入门到跳槽——第18天:ArkTS组件状态管理装饰器
  • 【前端】防抖
  • python对图片或文件的操作
  • 架构篇19:单服务器高性能模式-Reactor与Proactor
  • PyInstaller 将 Python 程序生成可直接运行的程序
  • 专有钉钉开发记录,及问题总结
  • Java Swing桌面项目打包成可执行jar
  • python数组反转的几种方式
  • 算法每日一题: 最大合金数 | 二分
  • jvm优化过程
  • 《Docker极简教程》--目录
  • 嵌入式第十二天!(指针数组、指针和二维数组的关系、二级指针)
  • 俄罗斯方块游戏设计文档(基于C语言)
  • 【解决】IntelliJ IDEA 重命名 Shift + F6 失效
  • Unknown encoder ‘libmp3lame
  • Android升级版本兼容问题
  • 微信生成带参数二维码(用户id), 扫码可获取用户id
  • 微信小程序(二十一)css变量-定义页面主题色
  • WSL2 Debian系统添加支持SocketCAN
  • Redis的五种常用数据结构以及其底层实现
  • 防御保护笔记
  • C++笔记之作用域解析符::和命名空间、作用域的关系
  • 回归预测 | MATLAB实现PSO-GRNN粒子群优化广义回归神经网络多输入单输出预测(含优化前后预测可视化)
  • linux安装 黑方容灾备份与恢复系统软件v6.0 代理
  • STM32第一节——初识STM32