koa框架3 基础入门之 async、await
async和await可以理解为generator的升级,因为generator需要一个runner库来运行它,这样一来就很麻烦,所有就有了async,其用法差不多。
await后面接异步操作或者同步操作,但是绝对不能为空,然后这个函数function开头接一个async
用法如下:
async function show() {
let user = await $.ajax({
url: "xxx/api",
dataType: "json"
});
let items = null;
if (user.login) {
items = await $.ajax({
url: "xxx/api",
dataType: "json"
});
} else {
if (user.vip) {
items = await $.ajax({
url: "xxx/api",
dataType: "json"
});
} else {
items = await $.ajax({
url: "xxx/api",
dataType: "json"
});
}
}
console.log(items);
};
show();
async的函数可以像普通函数那样调用,极大的方便了代码书写。
awite后面接什么
- promise对象
- 另一个async函数
- 普通函数
- 一个值
但是绝对不能为空。空的话就会报错。
错误处理
如果awite后面报错了,我们怎么处理。
使用了async后,函数变成了同步操作,他没有异步回调了,所以我们只能通过try catch 来进行捕获错误。
async function show() {
try {
let user = await $.ajax({
url: "xxx/api",
dataType: "json"
});
let items = null;
if (user.login) {
items = await $.ajax({
url: "xxx/api",
dataType: "json"
});
} else {
if (user.vip) {
items = await $.ajax({
url: "xxx/api",
dataType: "json"
});
} else {
items = await $.ajax({
url: "xxx/api",
dataType: "json"
});
}
}
} catch (e) {
console.log("出现错误", e);
}
console.log(items);
};
在async函数里面,将所有操作丢在try里面,如果某一处出现错误,catch便会捕获这个错误,从而达到错误提示的效果。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
评论
最新文章
Nestjs CORS配置和生产环境处理
1点赞
·
4评论
Debian12 SSH连接报错:Error Handshake failed no matching host key format
0点赞
·
0评论
Prisma 使用MongoDB创建数据时报错:Prisma needs to perform transactions, which requires your MongoDB server to be run as a replica set.
0点赞
·
0评论
Prisma 初始化MongoDB数据库下载报错reason unable to verify the first certificate解决方案
0点赞
·
0评论
Nuxt3 useFetch和$fetch的探讨以及封装请求处理
0点赞
·
3评论
目录
暂无目录
全部评论 1
都覆盖
QQ Browser Windows 10