async和await的详细介绍

async和await的详细介绍
// async函数的返回值是一个promise对象
// async function fn1() {
// // return 1;
// // throw 2;
// // return Promise.reject(3);
// return Promise.resolve(3);
// }
// // const rel = fn1(); //Promise { 1 }
// fn1().then(
// (value) => {
// console.log(“onResolved()”, value);
// },
// (reason) => {
// console.log(“onRejected()”, reason);
// }
// );
async function fn2() {
// return Promise.resolve(3);
return Promise.reject(3);
}
function fn4() {
return 6;
}
async function fn3() {
// const value = await fn2(); //await 右侧表达式为promise,得到的结果就是promise成功回调的value
// const value = await fn4(); //await 右侧表达式不是promise,得到的结果就是它本身值
// console.log(value);
// 注意如果await的promise失败了,就会抛出异常,只能通过try…catch来捕获处理
try {
const value = await fn2();
console.log(value);
} catch (error) {
console.log(“得到失败的结果”, error);
}
}
fn3();