练习题6_讲解.html 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 第一题 1 3 2
  11. // console.log('1');
  12. // setTimeout(function () {
  13. // console.log('2');
  14. // }, 0);
  15. // console.log('3');
  16. // 第二题 1 5 4 2 3
  17. // console.log('1');
  18. // setTimeout(function () {
  19. // console.log('2');
  20. // Promise.resolve().then(function () {
  21. // console.log('3');
  22. // });
  23. // }, 0);
  24. // Promise.resolve().then(function () {
  25. // console.log('4');
  26. // });
  27. // console.log('5');
  28. // 第三题 1 5 4 2 - Macro Task 3 - Micro Task
  29. // 同步任务,输出 '1'
  30. // console.log('1');
  31. // setTimeout(() => {
  32. // // 定时器回调函数,宏任务
  33. // console.log('2 - Macro Task');
  34. // // 添加一个微任务到队列中
  35. // Promise.resolve().then(() => console.log('3 - Micro Task'));
  36. // }, 0);
  37. // // 添加一个微任务到队列中
  38. // Promise.resolve().then(() => console.log('4 - Micro Task'));
  39. // // 同步任务,输出 '5'
  40. // console.log('5');
  41. // 第四题 Start Promise 4 End Promise 5 Timeout 5
  42. // console.log('Start');
  43. // setTimeout(() => {
  44. // console.log('Timeout 5');
  45. // }, 100);
  46. // new Promise((resolve) => {
  47. // console.log('Promise 4');
  48. // resolve();
  49. // }).then(() => {
  50. // console.log('Promise 5');
  51. // });
  52. // console.log('End');
  53. // 第五题 Start 0 1 2 3 4 Timeout 2
  54. // console.log('Start');
  55. // setTimeout(() => {
  56. // console.log('Timeout 2');
  57. // }, 100);
  58. // for (let i = 0; i < 5; i++) {
  59. // console.log(i);
  60. // }
  61. // 第六题 Start Async 1 Promise 8 End Async 2 Timeout 7
  62. console.log('Start');
  63. setTimeout(() => {
  64. console.log('Timeout 7');
  65. }, 0);
  66. async function asyncFunc() {
  67. console.log('Async 1');
  68. await new Promise((resolve) => {
  69. console.log('Promise 8');
  70. setTimeout(() => {
  71. console.log('Timeout 9');
  72. }, 0);
  73. resolve();
  74. });
  75. console.log('Async 2');
  76. }
  77. asyncFunc();
  78. console.log('End');
  79. </script>
  80. </body>
  81. </html>