async和promise都是异步方法,区别是async生成的结果是promise对象,async是promise的终结版。
await只能在async中使用,await是阻塞的意思,就是暂停,你一起调用2个接口,第一个执行完,不输出结果,要等最第二个接口执行完,才返回这两个的结果。
现在一块请求两个对象
请求的对象1
function nvm(num){
return new Promise((resolve, reject)=>{
setTimeout(()=>{
resolve(num*2)
},2000)
})
}
请求的对象2
function nvm2(num){
return new Promise((resolve, reject)=>{
setTimeout(()=>{
resolve(num*2)
},3000)
})
}
在这写一个async方法
async function timi(res){
let a=await nvm(2) //这里执行2s //await后面可以跟任何方法,对象
let b=await nvm2(2) //这里执行3s
let c=await nvm(2) //这里再执行2s
console.log(a,b,c) //你等7s,才打印出结果
}
timi() //执行async方法
再写一个async方法 timi2()和第一个timi()做对比
async function timi2(res){
return "sss" //现在直接return出结果
}
console.log(timi2()) //打印出来promise对象Promise {<resolved>: "sss"}
// __proto__: Promise
// [[PromiseStatus]]: "resolved"
// [[PromiseValue]]: "sss"
timi2().then((res)=>{
console.log(res) //打印出sss
})
虽然timi2() 在 timi() 方法后面,但这个先执行