博客
关于我
【ES9(2018)】Promise.prototype.finally()
阅读量:560 次
发布时间:2019-03-10

本文共 1216 字,大约阅读时间需要 4 分钟。

Promise.prototype.finally()方法解析与应用场景

在JavaScript的Promise处理中,Promise.prototype.finally()是一个非常实用的方法。它允许我们在Promise执行完成后,无论是成功还是失败,都能够执行一个指定的回调函数。这对于那些需要在特定操作完成后执行 cleanup(清理)任务的场景来说,无疑是一个非常强大的工具。

finally方法的基本功能

finally方法返回一个新的Promise,这个Promise的执行结果与原Promise的执行结果无关。它会在原Promise的then()catch()执行之后,依次执行指定的回调函数。这种机制允许我们避免重复代码输入,减少冗余,提高代码的可读性和维护性。

典型应用场景

场景1:loading关闭

在UI开发过程中,loading提示是一个非常常见的操作。每次发送请求后,我们都会展示一个loading提示,通知用户正在等待数据加载。当数据加载完成后,无论是成功还是失败,都需要将loading关闭,否则界面可能会显得卡顿或无法交互。将关闭loading操作放入finally回调函数中,无疑是一个非常简便的解决方案。无需在then()catch()中分别实现,这样既减少了代码的复杂性,也提高了代码的可维护性。

场景2:数据库连接管理

let connection = null;

db.open().then(() => { connection = $this;return connection.select({ name: 'Jane' });}).then(result => {// 处理结果// 使用connection进行更多查询}).catch(error => {// 处理错误}).finally(() => {connection.close();})

通过上述代码示例可以看出,finally方法能够确保无论是 Promise 正常执行还是因错误而终止,都能够执行connection.close()这个操作。这样可以避免在then()catch()中重复实现相同的 clearance 代码,简化了代码结构,同时提升了代码的可维护性。

总之,Promise.prototype.finally()方法为我们提供了一个标准化的处理流程,确保在特定操作完成后总能执行必要的回调函数。这不仅简化了代码的实现,还为后续的代码维护和扩展提供了有力支持。

转载地址:http://nfwvz.baihongyu.com/

你可能感兴趣的文章
Java编程基础_注解与命名规则&数据类型&运算符&修饰符&流程控制
查看>>
web项目开发记录
查看>>
matlab函数:sprintf详解
查看>>
matlab函数:fix 向0取整
查看>>
ORCAD创建元件库时,格点对不起怎么办
查看>>
Allegro中如何消除器件本身Pin间距报错
查看>>
AD中拖动器件,无法移动在一起如何解决
查看>>
python爬虫--07 Scrapy爬虫数据类型
查看>>
python爬虫--09 大学排名
查看>>
Linux/Mac下python3配置
查看>>
linux--练习001-基础类型
查看>>
python内存地址和编译字节码
查看>>
Flask--简介
查看>>
Flask模板--过滤器与测试器
查看>>
16 python基础-恺撒密码
查看>>
17 python基础--异常处理
查看>>
06.1 python基础--结构控制
查看>>
Frame--Api框架
查看>>
Frame--WEB框架
查看>>
idea 在Debug 模式中运行语句中函数的方法
查看>>