async
- async是es7才有的和
异步操作有关的关键字,和promise和generor关系密切
语法
async function name(params){code}
返回值
- 返回一个
Promise 对象,可使用then方法添加回调函数
async function asyncReturn(){
return "asyncReturnValue"
}
asyncReturn().then((v)=>{
console.log(v);
})
await
语法
- await 顾名思义是等待,等待一个promise对象。返回处理promise后的结果
const saveReturn = await expression
返回值
- 返回 Promise 对象的处理结果。如果等待的不是 Promise 对象,则
返回该值本身。
- 如果一个 Promise 被传递给一个 await 操作符,await 将
等待 Promise 正常处理完成并返回其处理结果。
- 正常情况下,await 命令后面是一个 Promise 对象,
它也可以跟其他值,如字符串,布尔值,数值以及普通函数。
function promiseCase(){
return new Promise(resolve =>{
setTimeout(()=>{
resolve('data')
},2000)
})
}
async function asyncCase(){
const saveReturn = await promiseCase();
console.log(saveReturn);
console.log('dataBehind');
}
asyncCase();
两者关系
- await 关键字
仅在 async function 中有效。如果在 async function 函数体外使用 await ,你只会得到一个语法错误。
- async
可以不用搭配await使用,如果需要返回一个promise对象可以,在函数前面添加async