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() 方法后面,但這個先執行