- async 函数用来处理异步问题
async function fn(){
let result = await XXX //表示后面结果需要等待
}
async特点:
1.await只能放到async函数中。
2.相比genrator语义化更强。
3.await后面可以是promise对象,也可以是数字、字符串、布尔
4.async函数返回是一个promise对象。
5.只要await语句后面Promise状态变成reject,那么真个async函数中断执行。
下面是一个async的特点5。
async function fn(){
await Promise.reject("出问题了");
let a = await Promise.resolve("success");
console.log(a)
}
fn().then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
如何解决 async函数中抛出的错误,影响后续代码;
a) try {
} catch(e) {
}
即将await语句放在try块里面。
try {
await Promise.reject("出现问题了");
}catch(e) {
}
b)使用promise自己的catch
await Promise.reject("出现问题了").catch(err =>{
console.log(err)
})
建议只要有await 就全部放在
try catch 块中
2.这是一段async代码
async function fn() {
let [a,b,c] = await Promise.all([
readFile("data/a.txt"),
readFile("data/b.txt"),
readFile("data/c.txt"),
])
console.log(a.toString());
console.log(b.toString());
console.log(c.toString());
}
fn();