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便会捕获这个错误,从而达到错误提示的效果。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
全部评论 1
都覆盖
QQ Browser Windows 10