<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模块化</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
/*----------ES6 async & await-----------*/
/*
* 【特点】
* 1.await只能放到async函数中;
* 2.相比genrator语义化更强;
* 3.await后面可以是promise对象,也可以数字、字符串、布尔
* 4.async 函数返回是一个promise对象,
* 5.只要await语句后面Promise状态变成reject,那么整个async函数会中断执行
* 【语法】
* async function fn() { //表示异步,这个函数里有异步任务
// let result = await xxx 表示后面语句需要等待结果获取到再执行;
}
* */
{
async function fn() { //表示异步,这个函数里有异步任务
return 'ddd'
}
console.log(fn()); //Promise
fn().then(res=>{
console.log(res) //ddd
});
// 抛出 Error
{
async function fn() {
throw new Error('Error出错了')
}
fn().then(res=>{
console.log(res) //ddd
},err=>{
console.log(err)
});
}
// 抛出 reject
{
async function fn() {
return Promise.reject('error错误'); // 下面不会执行
let a = await Promise.resolve('success')
console.log(a); //success
}
fn().then(res=>{
console.log(res) //ddd
},err=>{
console.log(err)
});
}
// reject不中断执行
{
async function fn() {
try{
let a = await Promise.reject('错误');
//不会执行下面的
console.log(a)
}catch (e) {
// 会执行下面的;
console.log(e);
}
}
fn();
}
//Promise catch
{
async function fn() {
let res = await Promise.reject('错误4').catch(err=>{
// 当错误时。填充默认数据。
return {
code:'200'
};
});
console.log(res.code);
}
fn();
}
}
</script>
</head>
<body>
<h1></h1>
</body>
</html>
网友评论