百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

碎片时间学编程「134]:JS 承诺中的 then 和 finally 有什么区别?

liuian 2025-03-25 15:21 107 浏览


从表面上看,Promise.prototype.then()Promise.prototype.finally()似乎很相似。但是我们需要记住一些重要的区别。

第一个也是最明显的一个是它finally()没有收到承诺链的结果值。同样,由于 finally() 没有收到任何值,因此也无法更改 promise 的已解析值。

JavaScript

new Promise((resolve, reject) => resolve(10))
  .then(x => {
    console.log(x); // 10
    return x + 1;
  })
  .finally(x => {
    console.log(x); // undefined
    return x + 2;
  });
// Promise resolves to 11, the return value of then()

另一个区别与错误处理以及如何解决承诺链有关。有时,您可能希望推迟在 Promise 链中捕获错误,以便在其他地方处理它们。在这种情况下,then()不会执行链接的,而finally()会执行。此外,如果前一个catch()抛出异常,你最终会处于同样的情况。

new Promise((resolve, reject) => reject(0))
  .catch(x => {
    console.log(x); // 0
    throw x;
  })
  .then(x => {
    console.log(x); // Will not run
  })
  .finally(() => {
    console.log('clean up'); // 'clean up'
  });
// Uncaught (in promise) 0

这里的要点是你不应该替代then()finally()除非有非常具体的理由这样做。根据经验,finally()应该用于清理(清除超时、清空引用、重置 UI 状态等)。

更多内容请访问我的网站:https://www.icoderoad.com

相关推荐

字体在哪里安装(字体安装在哪个)

把网上下载的字体安装到自己电脑上的具体操作如下:所需材料:电脑、字体安装包1、网上下载的字体文件一般是压缩包,先把文件解压。2、文件解压完成之后打开【计算机】在c盘中找到【WINDOWS】文件夹双击打...

ps软件下载安装教程(ps软件下载安装教程图片)
  • ps软件下载安装教程(ps软件下载安装教程图片)
  • ps软件下载安装教程(ps软件下载安装教程图片)
  • ps软件下载安装教程(ps软件下载安装教程图片)
  • ps软件下载安装教程(ps软件下载安装教程图片)
开机速度突然变慢很多(开机突然慢了很多)

电脑开机速度突然变慢的原因可能有以下几点:1.硬件问题:可能是电脑的硬件出现故障或老化,例如硬盘老化、内存故障等,导致数据读取速度变慢。2.病毒或恶意软件感染:如果电脑被病毒或恶意软件感染,这些恶...

project产品密钥2010(office project产品密钥)

我不知道您使用的是哪个project,但是一般来说,项目密钥的激活方法可能如下:1.在项目网站或应用程序中寻找“激活”或“许可证”选项。2.输入您的密钥(通常是一串字母和数字的组合)。3.按照屏...

qq消息群发助手(qq消息群发助手手机版)
  • qq消息群发助手(qq消息群发助手手机版)
  • qq消息群发助手(qq消息群发助手手机版)
  • qq消息群发助手(qq消息群发助手手机版)
  • qq消息群发助手(qq消息群发助手手机版)
笔记本品控最好的品牌(笔记本品控最好的品牌排行榜)

他属于一线品牌,质量很好,他的品控也非常好。联想是一个老品牌了,他的电脑技术非常成熟。联想小新笔记本啊,它的卖点是超薄机身+时尚造型,性能并不是它所追求的,所以一般买小新笔记本的都是用于普通的...

微软office官网下载中心(微软官方office下载)

07版本大概950M左右,1M=1024kb,自己算吧MicrosoftOffice是一个集办公软件于一体的应用软件套装,由微软公司推出,它包括Word、Excel、PowerPoint、Acces...

惠普售后电话怎么转人工(惠普售后人工电话是多少)

没有,可以找本地的售后中心那样就可以了2年部件说明是部分硬件是2年保修(比如电池他会说明只保修1年)还有一般是2年送修,要你送到维修中心的oppo手机可通过以下步骤连接打印机使用:1、oppo手机...

老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
  • 老版微信2019下载安装(微信7.6.5版本(可登录))
最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
  • 最好用一件ghost工具(一键ghost工具箱)
华为云呼叫中心(华为 呼叫中心)

华为呼叫中心(CustomerServiceCenter)主要负责处理客户咨询、投诉、售后服务等方面的问题。它为客户提供电话、邮件、在线聊天等多种沟通方式,帮助客户解决使用华为产品或服务过程中遇到...

u盘芯片精灵官方下载(u盘芯片精灵安卓手机版)

下载驱动精灵到U盘步骤如下:1.首先,您需要先准备一个U盘,并将其插入电脑上。注意,将U盘插入电脑时,应该确保电脑识别到了U盘设备,否则您可能需要检查一下您的U盘是否存在问题或者更换一个U盘。2....

游戏显卡推荐(笔记本电脑显卡性能排行榜)

2017年的时候,绝地求生这款fps游戏横空出世,不到半年的时间积累啦几百万的用户,我们国内的很多网吧也是因为这款游戏更新啦一波配件,这款游戏可以算是一款比较吃显卡的大作啦,我们可以看到绝地求生的官方...

注册免费邮箱163(注册免费邮箱英文)
注册免费邮箱163(注册免费邮箱英文)

1、在163免费邮首页点击“注册”,进入通行证注册页面;2、按页面提示可选择注册字母邮箱,或手机号码邮箱。填写“邮件地址”(填写您心仪的用户名,由字母、数字、下划线组成)、“密码”(设定您的邮箱密码)、手机号码(可用于修复密码)等注册...

2026-01-22 03:55 liuian

用手机怎么更改路由器密码(用手机怎么更改路由器密码设置)
用手机怎么更改路由器密码(用手机怎么更改路由器密码设置)

1、手机首先需要先连接上路由器的无线信号,成功连接后,打开手机的浏览器,然后输入路由器的管理ip,然后输入路由器的管理密码登录上路由器的后台。2、成功登录后台后,选择无线设置,然后选择无线安全设置,就可以更改无线密码了,现在手机桌面点击【浏...

2026-01-22 03:37 liuian