JS的ES6的async
2024-09-17 18:54:03
1.async概念:
真在意义上解决异步回调函数的问题(由于promise的then方法中还是使用回调函数,而async中await并没有使用回调函数真正意义上解决回调函数),同步流程表达异步操作。
最为常用并与promise结合使用。
本质是Generator的语法糖。
2.特点:
不需要像Generator去调用next方法,遇到await等待,当前的异步操作完成就往下执行。
返回为Promise对象,可以用then方法进行下一步执行
async取代Generator函数的星号*,await取代Generator的yield
语义上更为明确,使用简单,没有任何副作用
3.使用:
异步任务使用promise包装,await之后的异步任务通常返回一个promise的实例。
通过修改promise实例的状态通知await以及给await设定返回值(resolve(data))
let num = 1; function promiseUtil(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{ console.log("异步任务"+num+"执行成功"); let data = "我是异步任务"+num+"返回的数据xxxx";
num++; resolve(data); },2000);
})
} async function AsyncUtil(){ console.log("函数开始执行"); let result = await promiseUtil(); //返回的是一个Promise对象,可以使用then继续调用
console.log("异步任务返回数据:"+result); console.log("函数继续执行"); result = await promiseUtil();
console.log("异步任务返回数据:"+result); console.log("函数执行结束"); } AsyncUtil();
最新文章
- ORB-SLAM(六)回环检测
- C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
- js实现右侧的分享效果
- java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流
- UIKit: UIResponder(转自南峰子博客)
- Codevs 1082 线段树练习 3
- MYSQL 错误 :Out of resources when opening file './datagather/mx_domain#P#p178.MYD' (Errcode: 24) 解决办法
- Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感
- hdu 4681 string
- python网络编程之网络主机信息
- Shell编程实践之批量安装JDK
- crypto在web的使用
- linux模块驱动之led(ioremap)
- ArcGIS消除图斑重叠错误
- redis 脑裂等极端情况分析
- CSS-表格特有属性和定位
- [Leetcode]931.下降路径最小和
- 如何恢复在Windows 10中被永久删除的照片?
- Java 常见BUG 整理
- python基础知识-01-编码输入输出变量