async
async函数
- 关键字
async await - async
1.async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。
2.用来定义一个返回 AsyncFunction 对象的异步函数。异步函数是指通过事件循环异步执行的函数,它会通过一个隐式的 Promise 返回其结果。
- 使用await关键字后
1.一个 Promise对象 被传递给一个 await 操作符,await 将等待 Promise 正常处理完成并返回其处理结果
2.await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。若 Promise 正常处理(fulfilled),其回调的resolve函数参数作为 await 表达式的值,继续执行 async function。
3.await必须在async声明的函数内部使用,否则会报错
4.如果不加await关键字返回的的是一个处理的promise对象,这里是async函数返回的promise对象和await没有关系,//这里是自己的理解
- await 将等待 Promise 正常处理完成并返回其处理结果案例
async function log(){
var data=await getapi();
console.log(data);//这里使用await之后返回的结果是Promise 正常处理完成并返回其处理结果: 在代码下方
}
async function getapi() {
var data = $.ajax({//使用的是jQuery ajax
url: 'https://api.apiopen.top/developerLogin',//此处是ajax请求地址
type: "post",//请求方法
data: {//发送的请求的数据
name: 411524,
passwd: 411524
},
})
return data;
}
这是加await返回的结果
**这是不加await返回的结果,async函数会返回一个promise对象 **
- 任何一个await语句后面的promise对象出现reject状态,那么整个async函数都会中断执行
async function f() {
await Promise.reject('出错了');
await Promise.resolve('hello world'); // 不会执行
}
jQuery中的ajax封装的时候已经加上了promise对象,所以不用再次使用promise对象包裹
$.ajax({
url: 'http://59.110.138.169/admin/login/doLogin',
dataType: 'json',
type: 'post',
data: {
username: 2222222,
password: 1111111,
yan: 222222,
}
})
//相当于
new Promise((res, rej) => {
$.ajax({
url: 'http://59.110.138.169/admin/login/doLogin',
dataType: 'json',
type: 'post',
data: {
username: 2222222,
password: 1111111,
yan: 222222,
},
success(resq) {
res();
},
faile(resq) {
rej(resq);
}
})
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!