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

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

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


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

相关推荐

重装nvidia显卡驱动(怎样重装nvidia驱动程序)
  • 重装nvidia显卡驱动(怎样重装nvidia驱动程序)
  • 重装nvidia显卡驱动(怎样重装nvidia驱动程序)
  • 重装nvidia显卡驱动(怎样重装nvidia驱动程序)
  • 重装nvidia显卡驱动(怎样重装nvidia驱动程序)
百度云盘网页版登录入口(百度云网页版登录网站)

有您好,如果百度网盘TV不显示APK,可以尝试以下解决办法:1.重新登录账号:退出百度网盘TV账号,重新登录账号,刷新页面,看看能否显示APK。2.清除缓存:在手机设置中找到百度网盘TV应用,进入应用...

显卡更新驱动有什么好处(显卡更新驱动有什么好处吗)

1更新驱动可以提高显卡的性能和稳定性,以及解决一些已知的Bug和问题。2如果你在玩新的游戏或者使用新的软件时出现了一些问题,更新显卡驱动也可以解决这些问题。3此外,更新驱动还可以使显卡支持新的技...

qq密码网站(qq账号密码网站)
qq密码网站(qq账号密码网站)

用手机号注册就可以获得免费的QQ账号和密码,注册QQ账号步骤如下:工具/材料:手机、QQ、手机号1、打开手机,在手机桌面找到QQ并打开。2、在登陆页面点击右下角的用户注册。3、在输入框中输入手机号码,然后点击下一步。4、接下来会受到一条包含...

2026-01-20 07:37 liuian

usb网络共享驱动程序下载(usb网络共享软件下载)

首先需要下载绿联usb转串口的驱动程序,并将其解压缩。接着,将绿联usb转串口插入计算机的usb接口,系统会自动检测到硬件,并提示需要安装驱动程序。在提示中选择手动安装驱动程序,然后找到已解压缩的驱动...

免费excel软件下载(有没有免费的excel软件)

1、首先打开360安全卫士,在安全卫士首页找到软件管家,点击进入。2、进入到软件管家之后,在左侧的导航栏里面点击办公软件选项进入。3、然后在右侧找到office办公软件,正常情况下office办公软件...

电脑系统怎么重装开不了机(电脑系统重装启动不了)

1、BIOS设置错误  当BIOS设置错误时,硬盘模式设置有错误的时候,内存的读写参数设置有错误等都会造成不能正常启动开机的故障。  解决办法:可以尝试着重新配置BIOS中的“PNP/PCIconf...

迅雷不良资源禁止下载解决办法

打开迅雷主面板,点击右上方的主菜单然后点击新建浏览器任务,把Chrome划掉,然后再去Chrome浏览器中点击你要下载的东西,这样默认就是谷歌自带下载了我是这样解决的,希望对你有用要禁止或限制路由器...

品牌电脑台式机排名(电脑台式机排行)
品牌电脑台式机排名(电脑台式机排行)

电脑是我们现代人生活中离不了的产品,所有的货物都讲究性价比,就我使用过的电脑中,推荐的品牌有苹果和戴尔,下面来分析一下。1、苹果电脑其实相对于其他品牌的台式机,苹果的定价是非常的高了,但是真的值这个价钱,使用起来的舒适度是很棒的,最重要的是...

2026-01-20 06:21 liuian

解决方案ppt(解决方案工程师)

写解决方案PPT需要遵循一定的步骤和流程,具体如下:定义问题:首先需要明确需要解决的问题或挑战,并确保问题描述清晰、简明。分析问题:分析问题的根本原因,以及问题对目标受众造成的影响。可以使用图表、...

联想win7oem系统(联想笔记本win7系统)

可以,你在Win7、8、10下下载一个读取序列号的软件,有一栏会显示主板自带序列号,然后微软官网下载Win10家庭中文版(注意一定是这个版本)安装。输入BIOS自带序列号,激活完毕,现在你可以使用真...

极品五笔拼音输入法官方下载

读音是“jípǐnwǔbǐshūrùfǎ”。“极”,读音为jí,基本含义为顶端,最高点,尽头,如登极、登峰造极;引申含义为指地球的南北两端或电路、磁体的正负两端,如极地、极圈。也常做形容词...

无法打开怎么办(网站无法打开怎么办)
  • 无法打开怎么办(网站无法打开怎么办)
  • 无法打开怎么办(网站无法打开怎么办)
  • 无法打开怎么办(网站无法打开怎么办)
  • 无法打开怎么办(网站无法打开怎么办)
win101809专业版(win101709专业版)

以下是安装Windows101809版本的步骤:1.首先,你需要下载Windows101809版本的ISO文件。你可以在Microsoft官网上下载,或者在其他可信赖的网站上寻找下载链接。2...

如何关掉win10的自动更新(如何关闭win10系统的自动更新功能)

win10老推送win11打开的方法步骤如下,1,首先,打开设置,点击更新和安全2,打开后,点击windows预览体验计划3,打开后,点击开始4,然后按流程进行注册5,注册完成后,点击选择帐户6,然后...