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

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

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


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

相关推荐

如何更改开机启动项(修改开机启动项)

在Windows操作系统中,你可以按照以下步骤修改开机启动项:1.打开任务管理器:按下Ctrl+Shift+Esc键组合或者右击任务栏空白处并选择“任务管理器”。2.在任务管理器中,切换到...

msdn下载的xp系统怎么安装(xp安装msu文件)

在安装XP系统时,如果使用MSDN的ISO文件进行安装,可能会遇到装不了的情况。原因可能是ISO文件本身存在问题,需要重新下载或使用其他渠道获取。另外,也有可能是光盘刻录出现问题,需要检查光盘质量或更...

melogincncn登录页面(melogincn登录界面登录)

路由器melogincn手机无法登陆进去表现为系统闪退,原因和解决方法如下Root后修改文件  现在很多用户都选择Root(越狱)来获得更多使用权限,尤其是美化字体,这时候如果所替换的字体字库不全,应...

下载windows系统的网址(下载windows10网站叫什么)

通过优酷网网站可以直接下载mp4格式的电影和视频,不过可以下载后使用EV视频转换器将视频转换为mp4格式的视频。下载“硕鼠”软件,在硕鼠里直接粘帖视频的链接,不需要下载客户端就可以下载视频,并且可以选...

qq文件恢复软件(qq文件恢复软件哪个好用)

如果还能让对方重新发一下文件,那就直接重发一下比较好。如果无法重发了,就只能使用数据恢复软件尝试恢复了。找个恢复软件来搜索丢失数据的分区,即本地文件所保存的分区,例如D盘、C盘等。如果软件可以搜索到并...

惠普台式机售后服务电话(惠普商用台式机售后电话)
  • 惠普台式机售后服务电话(惠普商用台式机售后电话)
  • 惠普台式机售后服务电话(惠普商用台式机售后电话)
  • 惠普台式机售后服务电话(惠普商用台式机售后电话)
  • 惠普台式机售后服务电话(惠普商用台式机售后电话)
原装正版系统怎么重装系统(如何装原版系统)

windows重装能装正版系统是可以的,新购置的电脑,新安装的操作系统,比较容易遇到系统更新,再加上新手不熟悉操作,不知道如何处理,一旦处置不当,就会造成系统异常,问题严重的甚至需要还原、重装操作系统...

免费电脑数据恢复软件(电脑数据恢复软件哪款免费使用最好)

数据恢复助手app是一款专业的进行手机数据恢复的软件。用户有了它可以恢复那些被自己误删的重要信息,包括图片、聊天记录等等。非常的方便和实用。数据恢复助手软件功能1、恢复微信一键找回误删的微信聊天,支持...

cpu莫名其妙使用率100%(为什么电脑cpu使用率莫名百分百)

 如果CPU占用莫名其妙的达到百分之百,说明了其用心的系统出现了损坏,与CPU无法进行兼容。导致CPU达到百分之百,无法正常运转。简单地来理解,中断是软件、硬件和CPU之间进行通信的一种...

新电脑怎样安装打印机(在新电脑上怎样安装打印机)
  • 新电脑怎样安装打印机(在新电脑上怎样安装打印机)
  • 新电脑怎样安装打印机(在新电脑上怎样安装打印机)
  • 新电脑怎样安装打印机(在新电脑上怎样安装打印机)
  • 新电脑怎样安装打印机(在新电脑上怎样安装打印机)
家里无线网怎么设置密码(家里的无线wifi怎么设置密码)

安装无线路由器方法:1、将电脑本地连接设置自动获取IP地址和DNS;2、登陆到无线路由器,把路由器的LAN口地址改成192.168.2.1,避免和猫的LAN口地址有冲突,从猫的任意一个...

日本 德国 直播(德国对日本直播)

咪咕视频和企鹅体育视频都有直播,可以在手机上观看。不过要在手机上观看体育比赛直播,首先要下载这两个视频APP,才能观看到的。总决赛没有直播的原因是因为各个国家对于跳水世界杯的转播重视程度不够,导致像德...

刚装的电脑怎么安装系统(刚装的电脑怎么进系统)

首先需要准备一个系统安装盘或U盘,将其插入电脑并启动电脑。进入BIOS设置界面,将启动顺序设置为从安装盘或U盘启动。保存并退出BIOS设置,电脑将自动重启并进入系统安装过程。在安装过程中,按照提示进行...

win8永久免费密钥(win8免费永久激活工具下载)

可以在官网购买密钥,也可以在网络上下载激活系统的小程序或者用别人的密钥,使用激活软件一定要按照说明的步骤操作,否则可能导致激活失败,激活后还是需要按照要求操作完所有的步骤,而且不能删除激活的文件,可能...

邮箱格式怎么填写才正确

用户名+@+域名。如一个完整的电子邮件地址“Username@126.com”中,username表示用户名,“126.com”表示电子邮箱的域名,二者之间用@分隔。用户名@邮箱域名来进行组合,其中@...