then和catch返回值
1.都是会返回Promise
2.正常情况下resolve,遇到错误,rejected

  1. var p = Promise.resolve(100).then(res=>{
  2. console.log(res)
  3. throw "err"
  4. })
  5. p.then(()=>{
  6. console.log(200)
  7. }).catch(err=>{
  8. console.log(err)
  9. }).then(()=>{
  10. console.log(300)
  11. })

异常的处理

 (async () => {
     var p = Promise.reject("err");
     try {
         let res = await p;
         console.log(res)
     }catch(err){
         console.log(err)
     }
 })()
Promise.reject("err").catch((err)=>{
console.log(err)
})

状态

pending
resolved
rejected

        var p = new Promise((resolve,reject)=>{
            //
            setTimeout(()=>{
                resolve()
            })
        })
        setTimeout(()=>{
            console.log(p)
        })
        console.log(p)