js 事件循环相关执行顺序

javascript node 事件循环相关执行顺序

最近笔试某小游戏厂的时候遇见 node event loop 相关的题. 烟雨仔一直认为自己对 event loop 已经很了解了, 但还是入了坑.

在阅读这篇文章之前, 如果你是想了解 浏览器node event loop 更加底层的内容, 那么请移步至 node 官方. 本篇只适合想要对 node.js event loop 相关执行顺序略有了解的新手.

1. 浏览器 event loop

以下代码在众多的面试笔试题中, 是挺常见的. 在 chrome 浏览器中按序应该打印:

start ;
async1 start;
async2;
promise1;
script end;
async1 end;
promise2;
setTimeout

(说明一点: 只能保证在 chrome 浏览器中打印顺序如此, 烟雨仔尝试了诸如 QQ浏览器, 打印顺序有些微差异.)

	async function async1() {
   
      console.log("async1 start")
      await async2()
      console.log("async1 end")
    }
    async function async2() {
   
      console.log("async2")
    }
    console.log("start")
    setTimeout(() => {
   
      console.log("setTimeout")
    })
    async1
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值