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

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

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


从表面上看,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开机密码忘了怎么解除

一、笔记本电脑重启,然后按住F8键,然后进入到“Windows高级启动选项界面”,用键盘上下键选中“带命令提示符的安全模式”,最后按Enter键即可;二、接着会显示一个账号窗口,从中用鼠标选择“Adm...

手机存储空间不足怎么清理(iphone存储空间已满要怎么清除)

提示存储空间不足,处理方式如下:1.手机支持MicroSD卡的话,若插入了MicroSD卡,将大文件移动至MicroSD卡中保存;2.将不常用的文件导入到电脑进行备份;3.清理存储空间:下载过多...

怎么调(怎么调整生物钟)

  霸王电子称  (1)开机时按累计,归零,再累计,6,去皮,911,累计,放砝码,累计,输入10,累计,去皮,000,累计,30,去皮,000,累计,12,去皮,34,累计;  (2)按住累计开机...

没有电脑怎么修复sd卡(sd卡没电脑怎么格式化)

switch换存储卡和电脑没有关系。Switch的机身默认内存是32G,除过自身携带的专用系统,对于塞尔达传说这样的大作只能下载两个,完全满足不了玩家的需求,对于数字游戏爱好者来说存储卡完美的解决了相...

ghost安装win7教程(ghost安装流程)

首先将u盘制作成u深度u盘启动盘,重启电脑等待出现开机画面按下启动快捷键,选择u盘启动进入到u深度主菜单,选取“【03】U深度Win2003PE经典版(老机器)”选项,按下回车键确认。2、进入win8...

电脑ghost备份(ghost备份步骤图解)
  • 电脑ghost备份(ghost备份步骤图解)
  • 电脑ghost备份(ghost备份步骤图解)
  • 电脑ghost备份(ghost备份步骤图解)
  • 电脑ghost备份(ghost备份步骤图解)
定时关机win11(定时关机苹果手机)

在Win11中,可以通过设置计划任务来实现自动开关机。首先打开“任务计划程序”,选择“创建基本任务”,按照提示设置开机时间和关机时间,选择“每天”或“每周”等重复选项,最后保存设置即可。如果需要取消自...

cpu的温度多少正常(cpu温度多少正常手机)

1.正常的CPU温度应该在40℃-70℃之间。2.CPU温度过高可能会导致电脑性能下降、死机、蓝屏等问题,甚至会对CPU造成损坏。而CPU温度过低则可能会导致电脑启动不了或者出现其他异常情况。3....

win7旗舰版镜像iso下载(win7官方iso镜像下载)

1、如果是要制作系统安装盘,则需要先用第三方工具(老毛桃、大白菜等)制作启动盘,然后将系统镜像文件下载、解压到u盘系统目录下(可使用解压到、复制、剪切、粘贴)。2、如果是只保存镜像到u盘,可直接下载到...

win10截图工具在哪里(win10截图工具叫什么)
  • win10截图工具在哪里(win10截图工具叫什么)
  • win10截图工具在哪里(win10截图工具叫什么)
  • win10截图工具在哪里(win10截图工具叫什么)
  • win10截图工具在哪里(win10截图工具叫什么)
手机输入法下载安卓版(帮我下载手机输入法)

Oppo手机打不了字,下载输入法的步骤如下第一步,首先打开手机,在手机页面上找到应用商城的图标第二步,点击进入应用商城页面,点击页面上方的搜索框第三步,搜索手机打字输入法.搜索完毕之后第...

win7动态壁纸设置(电脑win7动态壁纸怎么设置)

要设置Win7的动态壁纸,需要先选择一张适合的动态壁纸图片并下载到电脑中。接着在桌面空白区域右键选择“个性化”,在弹出的窗口中点击“桌面背景”,然后在“位置”一栏选择下载好的动态壁纸图片文件。在图片预...

键盘home键是哪个键(键盘home键是啥)

综合说明:键盘上的Home键是微软Windows操作系统中具有返回功能的按键。详细说明:根据Windows不同的操作环境,home键的功能也会有区别1、桌面或窗口环境中按home键会自动选定第一个图标...

excel办公常用功能(excel常用办公技巧)

办公软件大家现在大家基本上都是微软的office,WORD、EXCEL、POWERPOINT是三个最重要的组件,相对来说WORD用的最多!目前OFFICE2003版用的比较普遍!新版是OFFICE...

win10正版系统官网家庭版(win10家庭版正版系统多少钱)

微软官网下载的WIN10系统需要制作成U盘安装盘才能安装。也可以直接在微软官网制作U盘安装盘。微软官网只提供原版(也就是纯净版的)系统的下载,需要用户自行永久激活后才是正版的。如果不是永...