掌握异步函数实现

简介: 同步调用需阻塞等待结果,性能较差;异步调用通过Promise封装异步操作,结合async/await优雅获取结果。如getUser用Promise模拟延时查询,async函数中await等待完成,避免阻塞,提升效率,错误可捕获处理,代码更简洁流畅。

阻塞式的执行有其弊端,即执行完之后,必须等对方返回结果。这种方式的调用我们也称之为:同步调用。同步的优势在于实时性强、能立马得到结果,缺点就是性能较差,阻塞等待结果。
而异步调用,就很好的解决了这个问题,这里我们模拟一个:查询用户的等待异步执行的效果。
util.js
function sum(a, b) {
return a + b;
}

function getUser()
{
return new Promise(resolve => setTimeout(() => resolve('张三'), 1000))
}

module.exports = { sum, getUser };
然后定义一个新的调用函数,以便做接口测试
getUser.js
const { getUser } = require('./util');

// 使用 async/await 方式调用异步函数
async function fetchUser() {
try {
const user = await getUser();
console.log('获取到用户:', user);
} catch (error) {
console.error('获取用户失败:', error);
}
}

fetchUser();

解释一下这里的三个核心关键词的作用

Promise:给一步函数打包,统一返回结果。类似于点单之后拿到取餐号

async:声明一下我这个函数式有一步操作,给函数打个标签,内部有一个等待的异步操作

await:等取餐号叫到你拿到结果。只能在async修饰的函数里,等Promise完成,拿到 resolve的结果
异步操作(如数据库查询) → 用 Promise 封装 → 在 async 函数里用 await 等待 → 优雅拿到结果/捕获错误

相关文章
|
Oracle 安全 关系型数据库
搭建 OpenLDAP 自助修改密码系统
让修改open ldap密码变得简单
1816 0
搭建 OpenLDAP 自助修改密码系统
ldap落地实战:svn集成ldap认证
上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证 subversion集成openldap认证 系统环境:debian8.
2715 0
|
存储 缓存 JSON
微信小程序使用本地存储方法
微信小程序使用本地存储方法
785 1
|
存储 NoSQL Redis
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
1368 0
|
2月前
|
Docker 容器
nexus3 docker compose部署
本配置使用 Docker Compose 快速部署 Nexus Repository Manager 3.87.2。通过映射端口 8081、挂载持久化数据卷(nexus-data),并设置正确权限(UID/GID 200),确保服务稳定运行,支持制品仓库管理。
211 3
|
JSON Java 数据格式
一文彻底搞懂 @RequestBody 和 @RequestParam 的区别(附实战示例)
本文深入解析Spring Boot中@RequestBody和@RequestParam的区别,通过实战示例详解两者在数据来源、格式、使用场景及验证处理上的差异,帮助开发者正确选择参数绑定方式,提升开发效率与系统安全性。
1373 0
|
7月前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器租用价格参考:2核4G/4核8G/8核16G价格与选型指南
阿里云服务器2核4G、4核8G、8核16G配置价格参考,目前,2核4G配置按量收费最低0.225元/小时,包年包月平均月价最低47.52元,按年购买u1实例2核4G5M带宽仅需199元且续费不涨价;4核8G配置按量收费最低降至0.45元/小时,包年包月平均月价最低159.84元;8核16G配置按量收费最低0.9元/小时,按月租用平均月价最低319.68元。云服务器实例规格和配置不同,收费标准与活动价格也不同,本文将为您介绍这三大配置的收费标准、活动价格及选型策略,以供选择参考。
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
1144 6
|
9月前
|
Java 测试技术 API
自动化测试框架深度解析与选择指南
Apache JMeter是Apache组织基于Java开发的一款压力测试工具,旨在测试软件的性能承受能力。它支持多种协议测试及功能测试,提供灵活的断言创建能力,如同创建带断言的脚本来验证程序是否返回预期结果。
|
前端开发 JavaScript UED
window.open()用法详解
window.open()用法详解
1372 0

热门文章

最新文章