语法
[return_value] = awit express
表达式
一个promise或者任何需要等待的值(data、result)
返回值
返回Promise 对象的处理结果、如果等待的不是Promise对象,则返回改值本身
注意的点
await必须卸载async中,但是async韩式中可以没有await
如果await的promise失败了 ,需要通过try…catch捕获处理
async function fn1(){
renturn 1
}
const result = fun1()
console.log(result) // 打印结果为promise 它的 status状态为resolved
value为1
so…所以呢:
async函数的返回值是一个promise对象
如何向让async函数失败
// throw 抛出错误
async function fn1(){
throw 2
}
const result = fun1()
result.then(
value = > {
console.log("onResolved()".value)
}.
reson= > {
console.log("onRejectd()".reason) // 打印结果为2
}.
)
// 返回一个promise对象
async function fn1(){
return Promise.rejected(3)
}
const result = fun1()
result.then(
value = > {
console.log("onResolved()".value)
}.
reson= > {
console.log("onRejectd()".reason) // 打印结果为2
}.
)
const result = awit express
这里result是express成功的返回值
那我们如何捕获 失败呢?
所以这里我们就要用到try。。。。catch
functuion fn ( ){
return Promise (( resolve,rejiect) => {
setTimeout( () => {
rejected("error message")
} ,1000)
} )
}
async function fn2 {
try{
const value = await fn()
}catch(error){
console.log(" i am error message " + error) // error message
}
}
fn2 ()