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

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

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


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

相关推荐

电脑怎么重新设置输入法(电脑怎么重制输入法)

1.查看电脑右下角是否有输入法的图标;  2.如果任务栏没有输入法图标,输入法无法切换时可以尝试着使用“Ctrl+Shitft”组合键,看看能不能调出输入法,如果依然无法使用输入法,可以使用“Ct...

如何手机修改家里的wifi密码
  • 如何手机修改家里的wifi密码
  • 如何手机修改家里的wifi密码
  • 如何手机修改家里的wifi密码
  • 如何手机修改家里的wifi密码
手机cpu天梯图排名(手机cpu天梯排名最新)

第一名:苹果:A151、A15Bionic采用4颗效率核心+2颗性能核心的组合,搭配4核心GPU,集成85亿个晶体管,性能提升了大约20%。2、苹果称其为“智能手机中最快的CPU”,有着“智能手机...

nrg文件用什么打开(ndr文件如何打开)

因为所有主流播放器都不支持啊。你的这个电影是映像文件。nrg是nero的映像文件,一些常见的映像文件还有iso,ccd,mdf格式等。你可以用nero的虚拟光驱打开,其实没有那样麻烦。你用alcoho...

华硕笔记本咋样(华硕笔记本咋样好用吗)

单纯说华硕电脑,质量还可以,i7的也是高端版本,正常用问题不大,但是直说处理器,没说别的或者具体型号就不好判断,有的系列表现就不太好,同样的配置,可能各个牌子价格不一样,需要比较英特尔酷睿i5处理器是...

电脑上被删除的文件如何恢复

我们有时候会误删电脑上的文件这个时候我们可以通过Ctrl+z撤回删除。好可以在回收站找回找到文件之后点击鼠标右键,还原即可。最后一个方法就是通过专业的软件来恢复文件夹在普通删除过后,会出现在回收站当中...

xp取消开机密码(xp 取消开机密码)

1、xp电脑进行取消开机密码事后,首先需要点击开始按钮,然后我们可以进入控制面板,选择控制面板的选项。2、之后可以在控制面板的界面上找到用户账户,点击进入即可。3、再然后我们需要再次选择点击更改密码,...

关闭开机密码(关闭开机密码后怎么还要输入)

1、打开手机客户端,找到自己的设置功能并打开。2、在设置界面,我们稍向下滑动一点,就会看到“锁屏与密码”。3、在锁屏和密码界面的中间位置会看到“屏幕密码”,下边还有灰色字体的“数字”,因为我的开机密码...

wi7和wi10哪个系统好(wi7和wi10哪个好用)

官方给出的Win10最低配置与Win7的完全一致,也就是说现在能安装Win7的PC也就能安装最新的win10,只是在实际测试中,win10比win7的内存占用量有所增加。所以win7理论上来说发热应该...

自己买无线路由器怎么用(自己购买路由器自己在家怎么设置)

在原地站着别的,还能捡到主机和显示器,最好再等一个电源插板和电脑桌椅。开个玩笑。无线路由器需要电源,就是适配器。你得去电脑城配一个电源。然后按住复位键,或是一个小孔孔。长按5秒以上。恢复出厂设置。然后...

系统下载到u盘可以直接装系统吗

可以。因为下载到U盘里的系统是可启动的,可以直接插入需要安装系统的电脑中启动安装程序,进行系统的安装。但是需要注意的是,不同类型的系统(如Windows和MacOS)需要不同的方法进行安装,而且在安...

笔记本电脑开机键没反应怎么办

电源线有问题按动POWER键后无任何反映故障现象:开机后屏幕没有任何显示,没有听到主板喇叭的“滴”声。故障分析:主板COMS芯片内部BIOS数据被CIH病毒或静电等问题损坏损坏,无法读取,系统启...

免费云服务器永久(免费的云服务器哪家好)

目前市面上有很多免费永久网盘,以下是一些比较受欢迎的:1.百度网盘:百度网盘是国内最大的云存储服务之一,提供了2T的免费空间。用户可以通过PC客户端、手机APP或者Web端进行文件上传和下载,并且支...

联想官网售后查询(联想售后服务进度查询)

用过联想的thinkpad,即俗称的“小黑”。实话实说,其售后服务还是不错的:定点机构很容易联系(虽然好像不上门服务),工作人员态度好,专业素质高,有一次维修还免费给做了外部擦洗。挑毛病的话,最突出...

zip解压缩(zip解压缩为啥还收费)

01将准备压缩的文件,全部收纳到一个文件夹内。02在该文件夹下,点击右键选择新建ZIP压缩文件按钮。03点击新建ZIP文件后,在当前文件夹下创建了一个空的ZIP文件。04我们双击打开这个ZIP文件,在...