练习题7_eventloop.html 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. // 第一题
  11. console.log('1');
  12. setTimeout(function () {
  13. console.log('2');
  14. }, 0);
  15. console.log('3');
  16. // 第二题
  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. // 第三题
  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. // 第四题
  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. // 第五题
  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. // 第六题
  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. resolve();
  71. });
  72. console.log('Async 2');
  73. }
  74. asyncFunc();
  75. console.log('End');
  76. </script>
  77. </body>
  78. </html>