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

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

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


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

相关推荐

十款免费数据恢复软件手机(免费手机数据恢复app排行榜)

有,但是没有不收费的。除了自己备份,但是即便是备份,iphone也需要购买icloud备份空间,iphone有免费的5个G内存,如果备份的数据超过5G,则需要另外购买icloud空间了。所以第三方的恢...

腾达路由器穿墙模式怎么设置

操作方法:打开电脑,打开浏览器页面,输入tenda路由器的登录地址,可以在路由器底部找到登录地址,然后打开路由器设置页面,点击“无线设置”,选择“信号调节”,可以看到wifi信号强度,选择“增强”,最...

百度游戏中心(百度游戏)

要删除百度网盘上的游戏中心,可以按照以下步骤进行操作:1.打开百度网盘网页版,并登录你的账号。2.在左侧导航栏中找到“应用”或“游戏中心”选项,点击进入游戏中心页面。3.在游戏中心页面,找到你想...

系统配置(系统配置怎么看)

1、处理器:1GHz或更快的处理器或系统单芯片(SoC)2、RAM:1GB(32位姿敏局)或2GB(64位拿肢);3、硬盘空间:16GB(32位操作系统)或32GB(64...

笔记本一键恢复出厂设置win7

方法/步骤:  windows7电脑恢复出厂设置方法一:  1、按下开机键,启动计算机;  2、按F8,进入Windows7的高级启动选项;  3、选择“修复计算机”。  4、如果有管理员密码,需要输...

百度百科的收藏功能(百度百科加入收藏)

要收藏头条百科,首先需要注册登录头条账号。在浏览头条百科页面时,找到右上角“收藏”按钮,点击即可将该页面加入收藏夹。在个人中心的“我的收藏”页面可以查看已经收藏的内容。同时,也可以通过搜索框直接搜索已...

联想笔记本电脑性价比(联想笔记本电脑性价比高的推荐)

2023年联想推出的一款性价比高的笔记本电脑是联想Yoga7Carbon。它是一款轻薄便携的2合1笔记本,采用了高强度碳纤维材质打造,具有出色的抗撞击性和高端外观。配备了英特尔第11代酷睿处理器、...

升级包官方下载

首先开机,然后找到设置。然后,在设置中下滑页面找到系统更新选项接着,在更新页面,如果有可用更新,就会看到。下一步,点击下载,安装新版本。下载完之后会出现立即更新或者预约夜间更新。这个根据情况选择就好。...

微软公司win7下载(微软官网win7下载及安装方法)

1、首先打开浏览器,搜索原神,找到官网。2、进入后选择PC端下载。3、下面会自动下载安装包。4、下载完成后打开,选择安装,等待安装完成就可以了。《原神》是由上海米哈游网络科技股份有限公司制作发行的一款...

360勒索病毒文件恢复工具(360勒索病毒专杀工具)

如果你下载软件的时候,有提示是敲诈的病毒,那么有可能是因为你在下载软件的时候,不是正规渠道下载的,所以你下载的软件会带有病毒,你可以去电脑管家里面找到你的杀毒软件,来对你下载的软件进行病毒的查杀,你也...

win7系统自带硬盘修复工具(windows7硬盘修复)

修复Win7磁盘错误可能需要一定时间,特别是在磁盘容量较大或错误较严重的情况下。首先,你可以尝试运行磁盘检查工具,如Chkdsk命令,通过命令提示符或者系统自检工具来扫描和修复磁盘错误。如果修复过程中...

微信群发群消息怎么群发(微信群发消息的步骤)

具体步骤1.我们在己登录的右上角的+加号按钮2.然后选择人在群聊中的联系人,点击确定。3.现在我们的群聊就创建成功了,现在设置一下点击点击右上角按钮4.为我们的群取一个名字吧,如叫安卓主题开心群5.设...

xp系统怎么查序列号

寻找WindowsXP的安装序列号的方法很简单的,打开Windows\System32,这儿有个叫$winnt$的配置文件,用“记事本”打开它,你就能找到安装序列号了硬盘序列号可以通过XP系统命令...

电脑无缘无故自动开机(电脑无缘无故自动开机怎么回事)
电脑无缘无故自动开机(电脑无缘无故自动开机怎么回事)

windows电脑经常自动开机,是你允许预定维护在预定维护时间唤醒我的计算机了,只要关闭这项功能,就不会自动开机了。设置方法∶在任务栏的搜索栏中输入控制面板,并点击进入。点击安全和维护。展开维护选项,找到自动维护栏,单击更改维护设置。取消勾...

2026-01-16 11:55 liuian

电脑win7恢复出厂设置怎么弄

你好,以下是在Windows7专业版上恢复出厂设置的步骤:1.备份您的重要文件和数据。恢复出厂设置将删除所有文件和数据,因此在开始之前,请确保将其备份到外部设备或云存储中。2.打开“控制面板”,然后...