es6语法的 Promise async 和 await是什么意思
都是处理异步请求的
// 申明一个异步方法 async function testAsync() { return "hello async"; } const result = testAsync(); console.log(result); // 输出 Promise 对象。async 函数会返回一个 Promise 对象。 testAsync().then(v => { console.log(v); // 输出 hello async。async 函数可以使用 then() 链来处理这个 Promise 对象 });
实例1
注意执行先后顺序
// 2s 之后返回双倍的值 function doubleAfter2seconds(num) { return new Promise((resolve, reject) => { // 模拟HTTP请求延时2s setTimeout(() => { resolve(2 * num) //一定要加resolve() 。成功则执行的方法,可以传参。 }, 2000); }) } //async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成 async function testResult () { console.log('内部调用前 2') // 2 let result = await doubleAfter2seconds(30); console.log(result+'4'); //4 console.log('内部调用后 5') // 5 } console.log('外部调用前 1') // 1 testResult(); console.log('外部调用后 3') // 3 // 2s 之后,输出了60.
实例2
岁两个方法进行异步调用,执行结果结果为先2秒后输出 one ,再2秒后输出two 和onetwo
// 使用实例 async function init () { try { let first = await getOne(); let second = await getTwo(); let res = first + second; console.log(res); } catch (error) { console.log(error); } } function getOne () { return new Promise((resolve, reject) => { setTimeout(() => { console.log("one") resolve("one") }, 2000); }) } function getTwo () { return new Promise((resolve, reject) => { // vue 中axios使用方法 // axios.get('/two', {data:two}).then((res) => { // if (res.status === 200) { // resolve(res) // } // }).catch((err) => { // reject(err) //错误时调用方法 // }) setTimeout(() => { console.log("two") resolve("two") }, 2000); }) } init()
本文来自博客园,作者:三线码工,转载请注明原文链接:https://www.cnblogs.com/shangrao/p/14016279.html
【推荐】国内首个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