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

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

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


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

相关推荐

win7电话激活确认id网站(win7电话激活命令)

产品id:软件作品编号;激活id:激活码;productkey:类似激活码,一般由OEM商贴在机器标签上。激活id是通过产品id计算出来的。方法一分步阅读1/3“计算机”查看步骤一:电脑用户右击桌...

installer一直正在安装(windows installer正在准备安装取消不了)

windowsinstaller是系统的一个服务,基于微软系统平台的支持各种应用程序的安装及使用的一个服务。之所以出现你这种情况,可能是你的windowsinstaller服务没有开启,或者文件受...

打印机安装驱动找不到设备(打印机安装驱动找不到设备了)

1、检查驱动有没安装正确,打印时有没有选对对应的打印机驱动。  2、检查打印机驱动是不是脱机,如果脱机把打印机改成联机状态。  3、打印机驱动是否选了暂停打印,如果是把暂停打印去掉。  4、检查打印线...

win7分区类型(win7分区形式)

win7用传统的mbr就可以了,因为它不支持gpt,win8以上的操作系统才支持gpt。以后微软的操作系统将会gpt优先,因为安全性更高,性能上也有优势。win7一般就是MBR的结构了。 M...

显卡主要是干什么的(显卡主要是干什么用的)

显卡的作用是控制电脑的图形输出,它是架接在主机和显示器上的硬件。负责将cpu送过来的影像数据处理成显示器认识的格式并输出也就是人眼在显示器上看到的影像。显卡的主要作用是将CPU提供的指令和数据进行相应...

用windows7系统可以(windows7电脑可以装windows10吗)

所有电脑都能装win7,但是有的电脑不适合,电脑会运行不流畅。判断电脑不适合win7的方法:1,首先安装64位win7系统必须要求你电脑的CPU(处理器)为64位。(可以使用CPU-Z软件来查看自己的...

光纤和路由器怎么连接(光纤路由器怎么连接电脑)

要连接光纤和路由器,首先需要将光纤接入光猫或光纤调制解调器,然后通过以太网线将光猫或解调器与路由器连接。确保光猫或解调器的光纤接口和路由器的以太网接口类型相匹配,如光口与光口或光口与RJ45接口。连接...

u盘无法正常读取(u盘无法正常读取怎么解决)

方法一1.右击计算机图标,打开“管理”菜单。2.在左侧树形菜单中找到“存储”下点击“磁盘管理”。3.在磁盘列表中查看是不是有存在没有盘符的磁盘。4.如果有则右击这个盘选择“将分区标识为活动分区”,再给...

window7旗舰版是哪年的(我告诉你win7旗舰版是哪个)

Windows7旗舰版是微软公司于2009年10月22日发布的操作系统版本之一。Windows7旗舰版是Windows7系列中的高端版本,具有更多的功能和更高的性能。Windows7旗舰版是W...

itunes电脑下载(itunes电脑下载需要更改安装应用程序的位置)

ITUNES有苹果版和PC版之分,不同电脑需要下载不同的版本。苹果iTunes官方版是供Mac和PC机使用的一款免费数字媒体播放程序软件,可以管理和播放用户自己的数字音乐和视频。同时,苹果iTunes...

免费追短剧软件 全免费(免费追短剧软件 全免费ios)

以下是一些追短剧的文案,供您参考:“短剧,长情!沉浸在精彩剧情中,感受细腻情感。快来一起追短剧,开启你的心灵之旅!”“迷上短剧,只需一集!集结创意与精彩,给你不一样的感官享受。快来一起追剧,解锁新世界...

戴尔笔记本电脑恢复出厂设置

戴尔电脑恢复出厂设置的具体操作方法如下:1.点击“开始”,选择“设置”。2.找到并点击“更新和安全”。3.点击“恢复”。4.点击“开始”。5.在弹出的对话框中,选择是"保留我的文件"还...

u盘量产工具使用(u盘量产工具怎么修复u盘)
  • u盘量产工具使用(u盘量产工具怎么修复u盘)
  • u盘量产工具使用(u盘量产工具怎么修复u盘)
  • u盘量产工具使用(u盘量产工具怎么修复u盘)
  • u盘量产工具使用(u盘量产工具怎么修复u盘)
电脑播放器哪个最好用(数字播放器排行榜前十名)

1、VLC媒体播放器:VLC媒体播放器是跨平台免费开源的多媒体播放器,支持宽广的音视频格式,不需要安装多媒体编码解码器即可支持播放,支持高清视频播放,内置了众多内置影片特效,并支持自定义影片特效,功能...

硬盘驱动器安装在哪里(硬盘驱动器安装在哪里好)

电脑硬盘驱动安装方法如下1、搜索AHCI下载。2、下载AHCI驱动。3、将下载好的AHCI驱动进行解压,出现AHCI文件夹,双击进入。4、在AHCI文件夹中选择“PREPARE”文件夹。5、...