1.async函数结合await表达式
a.async函数中不一定要完全结合await
b.有await的函数一定是async函数
2.await相当于then,可以直接拿到成功的Promise实例化对象的结果值
3.await一定要写在async函数中,但是async函数中可以没有await
4.如果await表达式后面是Promise实例化对象,则await返回的是Promise实例化对象的成功的结果值
5.如果await表达式后面是其他值,则这个值将直接作为await的返回值
代码如下(示例):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
1.async函数结合await表达式
a.async函数中不一定要完全结合await
b.有await的函数一定是async函数
2.await相当于then,可以直接拿到成功的Promise实例化对象的结果值
3.await一定要写在async函数中,但是async函数中可以没有await
4.如果await表达式后面是Promise实例化对象,则await返回的是Promise实例化对象的成功的结果值
5.如果await表达式后面是其他值,则这个值将直接作为await的返回值
-->
<script>
async function main() {
// 内部执行异步的功能,并且得到成功的结果值
// 1.如果await右侧为非Promise类型的数据,await后面的值是什么,返回的结果就是什么
// let res = await 100
// console.log(res); // 100
// 2.如果await右侧为成功的Promise类型的数据
// let res = await new Promise((resolve, reject) => {
// resolve('ok')
// })
// console.log(res); // ok
// let res = await Promise.resolve('okk')
// console.log(res); // okk
// 3.如果await右侧为失败的Promise类型的数据,需要try...catch来捕获
try {
// let res = await new Promise((resolve, reject) => {
// reject('error')
// })
// console.log(res);
// let res = await Promise.reject('error')
// console.log(res);
let res = await new Promise((resolve, reject) => {
resolve('okkk')
})
console.log(res);
} catch (err) {
console.log(err);
}
// 有了try...catch后续的代码将继续执行
console.log(11111);
}
// 调用
main()
</script>
</body>
</html>