async await和promise的區別,和使用方法


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM