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

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

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


从表面上看,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盘装系统win732位(怎么用一键u盘装系统工具制作u盘)

1、下载win7x64系统iso镜像到本地,右键使用WinRAR等工具解压出来。2、将win7.gho文件和Onekeyghost工具放到同一目录,比如D盘,不要放C盘或桌面。3、双击打开Onek...

win10系统专业版密钥(win10专业版密钥多少钱)

windows10安装都需要密钥的,不管专业版还是别的版本。原版系统镜像安装后需要输入序列号才能激活为正版系统,这个序列号就是激活密钥。不输入序列号也是可以进去系统的,此时是试用版,屏幕右下角会有...

五笔输入法下载网址(五笔输入法下载软件)
  • 五笔输入法下载网址(五笔输入法下载软件)
  • 五笔输入法下载网址(五笔输入法下载软件)
  • 五笔输入法下载网址(五笔输入法下载软件)
  • 五笔输入法下载网址(五笔输入法下载软件)
pto登录入口(p.to登录)

如果路由器被重置了,需要重新设置路由器才能访问互联网。以下是一些步骤来使用手机设置路由器:1.确保已经连接到路由器。如果还没有连接,请使用正确的用户名和密码登录路由器。2.打开浏览器,在地址栏中输...

如何修改文件(如何修改文件创建时间)

工具/原料电脑windows系统方法/步骤1、新建一个文档文件。2、在文件名后面输入“.exe”按下enter键。3、文件的名字改变了,但格式没变。4、点击“菜单”点击“工具”,点击“文件夹选项...

win7剪贴板怎么调出来(windows7的剪贴板在哪里)

要开启Win7剪贴板,首先需要打开“运行”窗口,方法是按下“Win+R”快捷键。在弹出的窗口中输入“clipbrd”并点击“确定”按钮。这样就会打开剪贴板窗口。在窗口中可以看到最近复制或剪切的内容。如...

cmd一键清除垃圾命令chkdsk(cmd一键清理)

这个就是自检命令,在一些轻微的文件损坏可以用这个命令回复楼主你打的/F是修复磁盘上的错误意思/R是查找不正确的扇区并恢复可读信息。chkdsk的全称是checkdisk,就是磁盘检查的意思。这个东...

无备份彻底删除照片找回(苹果手机无备份彻底删除照片找回)

如果您的手机照片没有备份,但是误删了照片,可以尝试以下几个方法恢复:1.使用Android手机自带的垃圾桶功能:如果您使用的是安卓手机,最新版的Android系统中提供了“回收站”功能。您可以在相册...

qq怎么改实名认证(qq怎么改实名认证吗)

要先将原来的实名认证注销掉,才可修改QQ的实名认证,具体方法如下,打开手机【QQ】,点击左上角的【头像】,然后选择【我的QQ钱包】,点击右上角的【设置】,在设置界面选择【实名认证】,进入到实名认证界面...

win10启用网络发现自动关闭(win10启用网络发现自动关闭了)

因为在Win10系统中,网络发现是一个网络共享和连接的设置选项,如果关闭了网络发现,那么其他计算机就无法找到你的计算机并进行资源共享,这样能够提高安全性。同时关闭网络发现能够减少广播包,降低网络负载,...

看图软件cad手机版下载(看图软件cad手机版下载安装)

你可以在应用商店或者CAD官方网站上搜索"CAD快速识图"并下载安装。在下载前,建议先确认你的手机是否兼容这个应用程序,以及查看是否有最新版本可供下载。下载完成后,打开应用并按照提示完...

台式电脑连接无线网卡(台式电脑连接无线网卡吗)
  • 台式电脑连接无线网卡(台式电脑连接无线网卡吗)
  • 台式电脑连接无线网卡(台式电脑连接无线网卡吗)
  • 台式电脑连接无线网卡(台式电脑连接无线网卡吗)
  • 台式电脑连接无线网卡(台式电脑连接无线网卡吗)
怎么进入tp link无线路由器设置
怎么进入tp link无线路由器设置

tp-link路由器的设置登录入口进入方法如下1.打开tplogin.cn页面,点击右上角的“登录”菜单。2.输入用户名和密码,点击登录按钮,进入登录页面。3.如果你忘记了用户名或密码,可点击忘记密码,并输入注册邮箱或者手机号,点击确认,系...

2025-12-31 08:05 liuian

电脑莫名重启怎么回事(电脑莫名奇妙的重启)

电源的大电容漏电,供电不足造成的,这个就要更换电源2、主板上的内存插槽和内存之间接触不良出现问题,或者内存的显存集成块出现虚焊也会出现老是重启3、CPU风扇出问题,或者散热器的卡子松了。当CPU的风扇...

如何一键还原电脑系统win7(一键还原win7系统按那个键)

方法如下:  1、下载“一键GHOST硬盘版”用压缩工具软件解压,解压后选“setup.exe”文件,即自动把一键还原安装到硬盘中。安装完成后,在桌面和开始菜单将建立程序的快捷方式:  Win7系统...