then之后的返回值的状态 resolved,如果遇到错误,状态会变成reject

  1. var p = Promise.resolve(100).then((res)=>{
  2. console.log(res)
  3. throw "err"
  4. })
  5. console.log(p)

then-throw

then之后的返回值的状态 resolved,如果遇到错误,状态会变成reject
Tips: then只能触发promise—>resolved的状态

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

then-thow

then之后的Promise返回值的状态 resolved,如果遇到错误,状态会变成reject
Tips: then只能触发promise—>resolved的状态

  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. })

catch-throw

  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. })

catch的返回值 Promise的状态,正常情况下是resolved,如果有错误,那么状态是rejected

  1. var p = Promise.reject(100).catch(res=>{
  2. console.log(res)
  3. throw "err"
  4. })
  5. console.log(p)

async-try

在async-await中可以使用try-catch语句去捕获异常
Promise.reject(“err”).catch()

  1. (async ()=>{
  2. var p = Promise.reject("err");
  3. try{
  4. let res = await p;
  5. console.log(res)
  6. }catch(err){
  7. console.log(err)
  8. }
  9. })();