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

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

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


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

相关推荐

cmd清理垃圾命令代码(cmd清除垃圾命令)

1、首先“windows”键+“R”,当然不一定是大写,这里是为了突出2、其次,输入“cmd”,按下回车键或者点击上面的“确定”按钮3、进入控制台窗口之后,输入“cleanmgr”,按下回车键“ent...

双系统没有引导界面(双系统 没有引导)

安装有winPE系统的U盘无法进安装系统界面的原因通常有如下几点:1)BIOS中开启了secureboot若BIOS中开启了secureboot项目,winPE系统是无法引导进入的,此时需先进入BIO...

电脑运行速度慢怎么办(电脑运行速度慢咋办)

清理电脑桌面电脑桌面上的东西越少越好,东西多了占系统资源。虽然在桌面上方便些,但是要付出占用系统资源和牺牲速度的代价。解决办法:①将桌面上快捷方式都删了,因为这些在“开始”菜单和“程序”栏里都有。②将...

foxmail和qq邮箱的关系(foxmail邮箱和outlook)

是的,QQ邮箱和Foxmail邮箱是一个团队开发的就是原来的Foxmail客户端开发团队不过被腾讯收购了所以,我们看的的QQ邮箱和Foxmail邮箱是一样的。只是Foxmail功能少的点,而切也不够出...

电脑如何创建虚拟光驱(如何建立虚拟光驱)

虚拟光驱是一种软件,可以模拟实体光盘,使得用户可以在没有实体光盘的情况下使用光盘的功能,如安装应用程序、游戏等。下面是安装虚拟光驱的一般步骤:1.选择一个虚拟光驱软件,比如VirtualClone...

360怎么修复u盘(用360怎么修复u盘)

如果是有盘符而没有显示出来的:右击我的电脑/管理/存储/磁盘管理,然后右击“可移动磁盘”图标”单击快捷菜单中的“更改驱动器和路径”选项,并在随后的界面中单击“添加”按钮,接下来选中“指派驱动器号”,同...

cad2025永久激活密钥(cad2016激活密钥)

CAD2021的序列号和密钥激活步骤如下:1.首先,确保您已经购买了CAD2021的许可证。您可以在Autodesk官网上购买或联系您的Autodesk代理购买。2.下载并安装CAD2021软件。...

window7下载lr2019(window7下载一键重装如何恢复网络)

手机上要下载软件的话就到手机上应用商店里面去下载是最安全的

在线装机软件哪个好(线上装机软件)
在线装机软件哪个好(线上装机软件)

极客狗装机大师、极速系统装机大师都不错。1、极客狗装机大师采用了精美简洁的UI设计界面,让小白用户也可以轻松上手操作,可一键重装xp/win7/win8/win10操作系统,非常方便,有了它不用再担心自己不会重装系统啦,同时软件还提供了备份...

2026-01-08 23:05 liuian

wifi防蹭网神器手机版下载(wifi防蹭网软件哪个好用)

以目前的路由器品牌来说,解决这个问题是非常简单的,根本不需要使用第三方的APP客户端,几乎所有的品牌都有自己的APP客户端1、360路由器360路由器直接在手机应用市场下载“360家庭防火墙”APP...

qq安全中心官方下载(qq安全中心官网qq安全中心手机版)
  • qq安全中心官方下载(qq安全中心官网qq安全中心手机版)
  • qq安全中心官方下载(qq安全中心官网qq安全中心手机版)
  • qq安全中心官方下载(qq安全中心官网qq安全中心手机版)
  • qq安全中心官方下载(qq安全中心官网qq安全中心手机版)
为什么硬盘插到电脑没有显示

1、驱动程序的问题。 硬盘不显示和驱动程序有很大关系,如果程序不匹配或者是有问题,硬盘无法被正常读取,需要先卸载掉之前的驱动,并重新安装新的驱动一般就能恢复。2、USB设...

电脑显卡天梯图2025(笔记本电脑显卡天梯图2025)

2024年奥运会排名预测,第一名美国,第二名中国。结合21年东京奥运会成绩和今年各奥运项目比赛成绩,美国在田径游泳金牌大项目是收获大量奖牌,中国会在跳水,乒乓球,羽毛球等强行收获满满,预测第一美国,第...

固态硬盘的作用是什么(固态硬盘有什么功能)

固态硬盘作用 固态硬盘最大的作用就是快防震抗摔性:传统硬盘都是磁碟型的,数据储存在磁碟扇区里。而固态硬盘是使用闪存颗粒(即mp3、U盘等存储介质)制固态硬盘作而成,所以SSD固态硬盘内部不存在任何机械...

笔记本电脑蓝屏进不去系统怎么办

当笔记本电脑开机出现蓝屏时,可以尝试以下步骤来恢复系统:1.重启电脑:按住电源按钮长按几秒钟,让电脑完全关机,然后再按下电源按钮重新启动电脑。有时候蓝屏问题可能只是暂时的,重启电脑后可能会解决问题。...