11-1

promise的本质就是为解决回调地域问题(会将函数的状态暂停/凝结/冻结)
有两种状态:**resolve 处理成功的情况 用then**函数触发
**reject 处理失败的情况 用catch**函数触发

  1. var p=new Promise((resolve,reject)=>{
  2. resolve(1);
  3. reject(2);
  4. })
  5. p.then(res=>{
  6. console.log(res);
  7. }).catch(err=>{
  8. console.log(err);
  9. })

11-2 promise,async,await

async是协同Promise工作的,放置在函数前面,返回一个Promise对象,关键词**await可以让JavaScript进行等待,直到一个promise执行并返回它的结果,JavaScript才会继续往下执行,await只能在async定义的函数内部执行。**

  1. <script>
  2. var a=new Promise((resolve,reject)=>{
  3. setTimeout(()=>{
  4. resolve(1)
  5. },2000)
  6. })
  7. var b=new Promise((resolve,reject)=>{
  8. setTimeout(()=>{
  9. resolve(2)
  10. },1000)
  11. })
  12. /*
  13. promise函数执行
  14. 1.then
  15. 2.在aysnc函数中,通过await语句取执行
  16. */
  17. async function go(){
  18. var res=await a;
  19. console.log(res);
  20. var sum=await b;
  21. console.log(sum);
  22. }
  23. /*
  24. 在函数前面加上async
  25. 1.这个函数的返回值就是promise
  26. 2.可以在函数中使用await关键字
  27. */
  28. go();
  29. </script>