1. async也是处理异步的,它是对Promise的一种扩展,让异步更加方便;
2.优势:async是基于Promise的,虽然是异步操作,但看上去像同步;
3.首先,我们先来看下async的基本语法:
例
//创建一个async函数,执行异步操作
//await 关键字:等待异步执行完毕后回调;
let as = async () =>{
let result = await p;
console.log(result);};
//执行async函数
as();
//上面语法,用ES5过渡一下,帮助理解,具体如下:
async function as() {}
let as = async function() {}
let obj = {async as(){}};//也支持对象形式
4.如果有三个异步需要列队输出,我们用async语法来处理一下;
例
多个异步,按输出顺序加载,没有then,清晰很多
async function as() {
let r1 = await pi,
r2 = await p2,
r3 = await p3;
consoLe.log(r1);
console.log(r2);
console.log(r3);
}
as();
pS: await关键字只能在 async函数内部,否则不可识别;
PS:从上面的例子中,能感受到语义和清晰度都得到了很大提升,更像同步代码:
//批量异步列队,类似 Promise.all()
async function as() {
let all = [ await p1,await p2,await p3];
console.log(al1);
}
as();
5. async函数如果设置了返回值,这个值是Promise对象。
返回值是Promise对象
相当于Promise resolve()
async function as() {
return " hello,async! ";
}
as().then(value => {
console.log(value);
});
PS:如果return await p:这种,会导致提前输出pending状态,还是需要then: async function as() {
return await p1;
}
console.log(as);//得到的是promise对象的pending状态
as().then(value=>{//这里还是需要then
console.log(value);
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix