3.async函数详解——ES6异步编程
//async函数的基本语法 function getData(code){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ console.log(code); },1000) }) } //async函数定义 /* async函数的await的返回值一定是一个promise对象 async函数必须在前一个await的promise进入resolve状态的时候才会执行下一个await,自动往下执行 async函数调用了以后,自动执行 */ async function sedAjax(){ //这里的返回值,就是上面resolve里传来的参数 const res = await console.log('first'); console.log(res); await console.log('second'); await console.log('third'); await console.log('fourth'); } sedAjax();
eg.先获取商品详情,在获取商品评论
function getData(url){ $.get(url,data=>{ console.log(data); getData(`http://localhoset:3000${data.commentsUrl}`); },'json') } getData("http://localhoset:3000/goos_detail?id=2") 用async函数 function getData(url){ return new Promise((resolve,reject)=>{ $.get(url,data=>{ console.log(data); resolve(`http://localhoset:3000${data.commentsUrl}`); //reject("未找到商品评论") },'json') }); } async function getGoods(url){ const commentsUrl = await getData("http://localhoset:3000/goos_detail?id=2"); await getData(commentsUrl); } getGoods()
跟Generator函数的比较
1.await调用的函数必须返回的是Promise对象
2.async函数语法语义更加明确,async,await语义更准确;
3.async函数有内部的自动执行器,不用通过next来执行下一步请求
分类:
js / es6-职坐标
标签:
ES6异步编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?