在 promise 中 then 和 finally 有什么区别

IT科技类资讯2025-11-05 09:43:0337732

看上去 promise.prototype.then() 和 promise.prototype.finally 似乎非常相似。区别但是区别你需要明白它们有一些重要的差异。

第一个也最明显的区别是 finally() 没有得到 promise 链的结果。由于 finally() 没有收到值,区别因此无法更改 promise 的区别已解决值。

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 链有关。WordPress模板有时,区别您可能想要推迟捕获 promise 链中的区别错误,从而允许你在其他地方处理。区别在这种情况下,区别promise 链的区别 then() 将不会被执行,而 finally() 会。区别并且如果上一个 catch() 抛出,区别你最终会处于相同的区别情形之下。网站模板

new Promise((resolve,区别 reject) => reject(0))   .catch(x => {     console.log(x); // 0     throw x;   })   .then(x => {     console.log(x); // 将不会执行   })   .finally(() => {     console.log(clean up); // clean up   }); // Uncaught (in promise) 0 

这里的重点是,除非有非常特殊的原因,否则不应该替换 then() 和 finally()。 根据经验,finally() 应该用于清理(清除超时,使引用为空,重置 UI 状态等)。

源码下载
本文地址:http://www.bzve.cn/html/600e63998760.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

热门文章

全站热门

探索xqb70-f101的特性和性能(一款高性能的智能机器人的综合评估)

魅族MX16G(MX16G华丽登场,打造畅快体验新标杆)

探索台电P19HD平板的功能与性能(一款多功能便携平板的全面评测)

中兴星星二号(技术卓越、功能强大的中兴星星二号将如何改变通信行业?)

电脑密码错误提示问题解决方法(为什么电脑提示密码错误,以及应对之策)

五棵松摄影城(探索摄影艺术的新天地)

苹果手机mac地址如何修改(探索改变苹果手机mac地址的方法及步骤)

送男朋友手机的实用指南(从选择到使用,全面解析送男友手机的技巧和注意事项)

热门文章

友情链接

滇ICP备2023006006号-39