async 异步函数,返回值是一个Promise
async function fn(){
//return undefind // 默认不写,就是返回这个
//return 'aaa'
//return new promise(() => {})
}
let promise = fn() // 得到一个Promise
/**
Promise的状态 是由返结果决定的
即函数返回的结果:
- 普通数据: 状态是成功的;
- Promise: 由这个promise的状态决定;
- 返回的是类似这样的对象 {
then: function(resolve,reject){
resolve(参数) //由参数决定,同理
reject() //状态是失败的
}}
*/
promise .then( res => {
console.log(res) //res的值是函数返回的内容 ,默认是undefind
})
2. async函数的异常处理
async function fn(){
throw new Error('异常')
}
//会得到一个失败的promise
let promise = fn()
promise.catch((err) => {
})
console.log(‘异常时,后面的代码还是会执行’)
await 关键字, 必须在async 异步函数
async function fn(){
let res = await 表达式 //会等待结果,有结果之后,才会执行后面的代码
/**
表达式可以是:
1. 一个普通值
2. 成功的Promise: 得到成功的结果
3. 失败的Promise: 得到失败的结果,之后的代码不会执行,需要用 .catch()处理
*/
await '失败的Promise或异常'
console.log('失败的Promise或异常时,之后的代码不会执行')
}
let promise = fn()
promise.catch(() => {})