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

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

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


从表面上看,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

相关推荐

u盘文件保护怎么解除(u盘文件被保护如何删除文件)

方法一:硬件写保护  硬件写保护比较简单,一般U盘上均有物理开关,拨开即可。  方法二:转换U盘格式  一般用户的U盘都是FAT32格式的,因此我们先要将U盘转换成NTFS格式,FAT32转NTFS数...

路由器的登录帐号和密码是什么

用户名:admin,密码admin;还有路由器产品出厂时默认登录密码是guest,您可以在路由器底部的铭牌中看到。?1、一般路由器的账号为admin,密码也是admin;还有路由器产品出厂时默认登录密...

新安装的win10没有无线网络连接

解决方法步骤如下:1、首先击无线网络图标后弹出菜单,选择菜单里的可以连接的无线网络信号。2、点击无线网络图标后弹出菜单,选择菜单里的可以连接的无线网络信号。3、选中后,将底下的自动连接勾选上,然后点击...

win7声卡(win7声卡驱动正常但没声音)

双击这2个音频服务,查看下依存关系里查看依赖的服务是否都开启了.Pewer那个服务的模块可能被破坏,造成无法启动,重新安装该软件应该能修复如果系统还原点没关闭的话可以尝试还原到较早的更新或设置双击这2...

迅捷视频转换器官网(迅捷视频转换器是干嘛的)
迅捷视频转换器官网(迅捷视频转换器是干嘛的)

1.添加文件进入【视频水印】我今天就拿电脑上下载的几个短视频为例,操作一下去水印。首先,把转换器安装到电脑后,进入主操作界面,会发现里面有十2.单击【视频去水印】、添加去除的区域大量添加视频后,能看到软件自动识别出它们的信息,例如格式是...

2026-01-05 07:05 liuian

windows+media+player(windowsmediaplayer只有声音没有画面)

默认路径一般是c:\programfiles\windowsmediaplayer你可以去找找WIN7自带的WindowsMediaPlayer是12版本。WindowsMediaPlayer...

如何下载软件和安装软件(下载软件怎么下)
如何下载软件和安装软件(下载软件怎么下)

如今,市场上出现很多有趣的手机应用程序,下面介绍一下在手机上应用宝里快速的下载和安装应用的方法!1、打开手机里的应用宝,你想要的应用和游戏都可以找到。点击下载即可下载到手机上。2、在下面导航栏的“管理”=》“下载管理”里可以查看正在下载和已...

2026-01-05 06:05 liuian

强力一键root官网(强力一键root2021)

手机一键root关机后打不开主要原因:1.系统数据被篡改或清除导致。2.手机不支持ROOT导致冲突。解决方法:1.如果手机是开机状态,请先关机,抠下电池再装上,在关机情况下,同时按住电源键+音量减键...

windows7系统分盘(win7 如何分盘)

要在Windows7上分区,您可以使用内置的磁盘管理工具。首先,打开“控制面板”,然后选择“系统和安全”>“管理工具”>“计算机管理”。在左侧面板中,展开“存储”并选择“磁盘管理”。右键...

怎么查看电脑硬件配置信息(电脑上怎么看硬件配置)
  • 怎么查看电脑硬件配置信息(电脑上怎么看硬件配置)
  • 怎么查看电脑硬件配置信息(电脑上怎么看硬件配置)
  • 怎么查看电脑硬件配置信息(电脑上怎么看硬件配置)
  • 怎么查看电脑硬件配置信息(电脑上怎么看硬件配置)
cr2格式用什么打开(cr2文件用什么打开)
cr2格式用什么打开(cr2文件用什么打开)

1.cr2是佳能相机RAW格式文件,利用2345看图王就可打开。点击2345看图王2.点击打开图片3.选择cr2格式的照片,并点击打开4.cr2格式照片已打开...

2026-01-05 04:05 liuian

苹果手机怎么恢复出厂设置系统
苹果手机怎么恢复出厂设置系统

1.打开设置图标,进去设置页面后,找到通用选项,打开2.进去通用页面后,找到底部的还原选项,打开3.进入还原页面后,点击抹掉所有内容和设置选项,就可以把iPhone恢复出厂设置了。apple恢复出厂设置的方法步骤如下:1、打开自己...

2026-01-05 03:55 liuian

winxp重装系统详细步骤图解(xp重装系统教程)

XP系统重装方法如下1、首先打开电脑,鼠标右键单击“我的电脑”后点击选择“属性”按钮。2、然后在新的界面里点击选择“系统还原”按钮。3、之后在新的界面里点击勾掉“在所有驱动器上关闭系统还原”按钮。4、...

windows官网下载速度很慢(官网下载win10工具太慢了)

如果win10官网下载系统很慢,可以按照下述办法解决请尝试更改DNS改善这一情况:具体操作方法是打开控制面板-网络共享中心,点击左侧的更改适配器设置,右键点当前网络连接,选择属性,双击Internet...

360自动关机怎么设置(360自动关机怎么设置关机时间)

360设置自动关机的方法是通过以下步骤进行操作:1.打开360手机卫士应用。2.在应用主界面上方找到“工具箱”选项,并点击进入。3.在工具箱界面中找到“定时关机”功能,并点击进入。4.在定时关...