1. pending,resolved(fulfilled),reject

  1. <script>
  2. /*
  3. then之后的返回值的状态 resolved,如果遇到错误,状态会变成reject
  4. Tips: then只能触发promise-->resolved的状态
  5. */
  6. var p = Promise.resolve(100).then((res) => {
  7. console.log(res)
  8. throw "err"
  9. })
  10. p.then(()=>{
  11. console.log(200)
  12. })
  13. </script>

2 状态的切换

3 用async时候,await不能接收reject

  1. <script>
  2. /*
  3. await只能得到Promise--resolved状态的结果,作用相当于then函数
  4. */
  5. (async ()=>{
  6. var p = Promise.reject(100);
  7. var res = await p;
  8. console.log(res)
  9. })();
  10. /* Promise.reject(err).catch()捕获异常 */
  11. </script>

所以要结合try和catch来获取

  1. <script>
  2. (async ()=>{
  3. var p = Promise.reject("err");
  4. try{
  5. let res = await p;
  6. console.log(res)
  7. }catch(err){
  8. console.log(err)
  9. }
  10. })();
  11. /*
  12. 在async-await中可以使用try-catch语句去捕获异常
  13. Promise.reject("err").catch()
  14. */
  15. </script>