async/await 怎么用,如何捕获异常?

async/await可以和Promise结合在一起用

function 摇色子(){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
        let n = parseInt(Math.random() *6 +1,10)
      resolve(n)
    },3000)
  })
}

async function test(){
    let n = await 摇色子()
  console.log(n)
}
test()

await只能放在async函数里面

用try catch可以捕获异常

function 猜大小(){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
        let n = parseInt(Math.random() *6 +1,10)
      if(n>3){
        if(猜测 === "大"){
            resolve(n)
        }else{
            reject(n)
        }
      }else{
        if(猜测 === "小"){
            resolve(n)
        }else{
            reject(n)
        }
      }
    },3000)
  })
}

async function test(){
  try{
    let n = await 猜大小("大")
    console.log("好嗨哟" + n)
  }catch(error){
    console.log("输光了" + error)
  } 
}
test()

但需要猜测两次以上大小时,得用promise.all或promise.race

那为什么要用async/await呢?

因为更像同步函数。

你可能感兴趣的:(async/await 怎么用,如何捕获异常?)