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

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

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


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

相关推荐

手机京东装机大师在哪(京东装机大师是京东给我们组装吗)

如果全部在京东装机,在京东里面就可以。京东首页选择选择全部分类,下面的电脑、办公该分类下面的电脑整机。进入这个页面选择装机大师,进入该页面可以自己选择配置单了。鲁大师的一键重装系统找不到,解决办法如...

管理员密码忘了怎么改wifi密码

无线网管理员密码忘了的具体解决步骤如下:1.在路由器电缆的一侧,按住复位按钮超过7秒,并注意此复位按钮可能需要牙签按。按持续时间需要7秒以上的时间,当您看到所有指示灯同时发光时,表明重置成功。2.重置...

dell开机卡在logo死机(戴尔开机卡在logo画面)

你好!你是台式机还是笔记本。台式机的话,拔掉所有外接的设备,包括键盘鼠标,之后再试试看,如果还是一样,打开机箱,拔掉硬盘数据线,试试看,如果能正常通过,那就表示硬盘或者硬盘数据线有问题如果是笔记...

网络优化大师手机版(wifi网络优化大师)

使用方法:01、找到索尼电视自带应用商店,搜索安装【电视优化大师】。提示:若搜索不到的小伙伴还可通过在设置-应用里卸载自带应用商店更新,然后再搜索。02、然后打开“电视优化大师”,用遥控器依次点击“左...

大白菜系统安装win7(大白菜系统安装步骤)
大白菜系统安装win7(大白菜系统安装步骤)

1,开机,快速按F12,DEL等等启快捷键,一般会弹出PE的菜单,弹出的是其它的,选USB按回车进入即可。2,由于用不同软件制作的PE系统,会导致PE界面的选项卡会不一样的。用小白PE制作的,选1回车进入。3,进入pe系统里的样子,默认弹出...

2026-01-17 04:37 liuian

电脑硬盘数据恢复工具(电脑硬盘数据恢复多少钱一次)

只要是正版的数据恢复软件都会收费,如果想免费的话可以安装一个迷你兔数据恢复软件试试,因为它提供了200M的免费恢复额度,如果你的恢复需求不大,那就可以免费恢复

u盘有必要分区吗

分区好U盘分区的主要作用是将一个物理上的U盘分为多个逻辑上的独立区域,每个区域可以单独管理和使用。这样做的好处是可以将不同类型的文件分别存放在不同的分区中,提高文件的组织性和管理效率。例如,可以将工作...

优盘怎么做系统启动盘(优盘怎么做系统启动盘教程)

1/4分步阅读将U盘插上电脑,打开运行在电脑上下载好的小白一键重装系统软件,打开前退出所有杀毒软件,避免杀毒软件阻拦操作步骤。点击左侧“制作系统”,然后检测U盘后点击“开始制作”按钮。2/4在选择系统...

win7激活错误0 80072f8f(win7激活时发生错误,错误代码0x80072f8f)
win7激活错误0 80072f8f(win7激活时发生错误,错误代码0x80072f8f)

可以通过修改时间来解决系统提示0x80072F8F错误代码的操作方法。操作步骤1、鼠标点击时间,选择更改日期和时间设置,方法如下。2、在窗口中,选择internet时间,点击更改设置,方法如下。3、接着在窗口中,勾选与internet时间服...

2026-01-17 03:37 liuian

电脑如何进入bios模式(电脑怎么样进入bios)

电脑进入BIOS的方法1、按住F1电脑品牌:IBM、东芝、脸型thinkpad部分型号、toshiba等等这些型号电脑在开机时,按住键盘上的F1按键,那么它就会进入到BIOS的设置洁面中,需注意thi...

电脑如何设置虚拟内存(电脑怎么设虚拟内存怎么设最好)

进入系统打开控制面板后展开所有控制面板项,点击进入系统。修改虚拟内存点击高级系统设置后点击性能下的设置,点击高级后更改虚拟内存。设置数值将虚拟内存设置为自定义大小,具体数值最好是实际内存容量的一点五倍...

我的电脑图标打不开(电脑上图标消失了怎么恢复)

如果电脑点击图标没反应,首先看一下是不是鼠标左键的问题,左键出现故障图标往往是没有反应的,其次你把这些图标连一下,你看能不能画起来,如果无法划起来就是鼠标坏了,相反如果鼠标可以操作,但是电脑无法连接着...

联想y系列和r系列(联想7000)

联想y系列和r系列都好。其中r系列搭载的一般都是AMD锐龙处理器,y系列一般搭载的是英特尔处理器。希望我的回答对你有帮助一般情况下的话,联想笔记本电脑它的R系列和wy系列的画相比较来说是y系列,要稍微...

不激活win7有什么影响(不激活windows7会怎样)

如果Windows7未激活,会出现以下几种情况:1.桌面背景将变成黑色,每隔一段时间就会自动恢复成黑色。2.会弹出提示框,提醒用户需要激活Windows7。3.无法更新Windows,包括安...

超强升级系统 小说(超强升级系统 小说免费阅读)

女主柳洛溪,宋千千,肖甜甜,叶紫嫣,伏芸珊,南宫燕,菲菲,媛灵。狂暴系统的拥有者,龙家崛起的推动者,龙族守护者,天武大陆上屠魔者,新任远古界界王。前世为远古世界第一人,与远古世界一同孕育...