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

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

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


从表面上看,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、)MENU菜单按键。用于调出显示器调整菜单。  (2、)方向上键。向上移动光标  (3、)方向下键。向下移动光标。  (4、)SOURCE键。确定功能。 ...

qq号怎么注册账号
qq号怎么注册账号

申请QQ号的三种方法第一个:QQ页面注册。下载QQ之后进入登录页面,页面上有显示“注册账号”的字样,点击就可以进行注册了。一步步填完所需要的信息,其中会出现绑定手机号的提示。如果原先有手机号绑定的QQ号,现在需要再注册一个的话,是可以选择不...

2026-01-27 06:55 liuian

重装系统是不是只有c盘东西会丢
  • 重装系统是不是只有c盘东西会丢
  • 重装系统是不是只有c盘东西会丢
  • 重装系统是不是只有c盘东西会丢
  • 重装系统是不是只有c盘东西会丢
本地硬盘安装原版win10(本地硬盘安装和u盘安装)

要在新硬盘上安装Windows10纯净版,可以按照以下步骤进行操作: 1. 准备一个可启动的Windows10安装USB驱动器或DVD。2. 将新硬盘连...

windows xp 原版(windowsXP原版怎么安装不了)

一、主体不同1、原版系统:仅安装了windows系统,其效果如同用原版盘安装,而不同时安装第三方常用软件(类似迅雷,QQ,和word,EXCEL等软件)并对系统中并不常用的组件进行优化。2、装机版系统...

硬盘ntfs和fat32的区别(fat32和ntfs哪个好)

ntfs和fat32的区别如下:1、支持分区大小不同。NTFS主要应用场景有计算机磁盘,以及移动硬盘。这种格式的磁盘分区可以达到2TB,多用于储存大型文件。FAT32最大磁盘分区只有32GB,仅可作...

自动开关机在哪里设置华为(华为怎么自动开关机功能)

华为手机自动开关机在这设置:1、在设置菜单下点击进入【辅助功能】。2、点击【定时开关机】。3、打开【定时开关机】右侧开关,并设置开机时间、关机时间、是否重复等条件。部分华为手机不支持定时开关机功能,可...

华硕主板bios识别不到硬盘(华硕bios读不出硬盘)

建议先尝试在BIOS中通过F9键恢复默认设置,并保存设置后,重启电脑看看是否可以恢复;另外,如果是为了更换系统而修改BIOS设置,可以参考以下步骤:1、开机点按F2进入BIOS中,在security选...

win10下载什么杀毒软件好(win10装那个杀毒软件)
  • win10下载什么杀毒软件好(win10装那个杀毒软件)
  • win10下载什么杀毒软件好(win10装那个杀毒软件)
  • win10下载什么杀毒软件好(win10装那个杀毒软件)
  • win10下载什么杀毒软件好(win10装那个杀毒软件)
tplink路由器登录入口地址(tp-link路由器设置登陆网址192.168.1.102)

1.打开网页后输入192.168.1.1或tplogin.cn。2.第一次登录路由器或恢复出厂设置后再次设置,按提示设置好管理员密码、上网参数、wifi名称和密码。3.再次进入登录页面中,输入正确的密...

系统pe(系统pe怎么进)

PE系统是指个人卫生和身体素质教育系统,其目标是通过全面的教育计划和课程来提高学生的身体素质和卫生意识。这包括体育锻炼、健康教育、心理健康教育等内容,旨在培养学生健康的生活方式和积极的人生态度。PE系...

微软win11下载(微软win11下载官网)

这可能意味着您的电脑不满足下载或安装升级到Windows11的最低要求。如果您的电脑不符合要求,您将无法下载或安装Windows11。此外,这也可能表示电脑上的驱动程序或其他软件与升级到Windo...

office2010激活工具被拦截怎么办

关闭officeword2010激活向导的具体解决方法如下:1、首先,在电脑上找到office激活工具所在的文件夹:2、然后,打开该文件夹,并启动其中的激活工具:3、然后会弹出一个窗口,点击启动按钮...

wifi万能钥匙下载2025(wifi万能钥匙下载官方免费下载)

1、首先打开手机应用中心下载安装wifi万能钥匙。;;2、安装完成后,点击打开wifi万能钥匙即可使用。;具体使用...

win10一直自动修复(win10一直自动修复无法进入安全模式)

答:win10重启之后就一直自动修复循环。1.首先,按下电源按钮强关机,重新启动操作三次以上。此时自动进入系统菜单界面,点击“故障排除”。2.然后点击“高级选项”。3.进入高级选项部分的“启动设置”,...