首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么这段代码在Node中运行时不等待就打印输出并退出,但在Deno中它打印输出;等待一段时间后退出

这段代码在Node中运行时不等待就打印输出并退出,但在Deno中它打印输出后等待一段时间后退出的原因是因为Node.js和Deno在处理异步操作上有所不同。

Node.js是建立在事件驱动的非阻塞I/O模型上的,它使用了回调函数、事件循环和事件驱动的方式来处理异步操作。在Node.js中,当遇到异步操作时,代码会继续往下执行而不会等待异步操作完成,因此在这段代码中,当执行到异步操作时,它会立即打印输出并退出。

而Deno是一个现代化的JavaScript/TypeScript运行时,它也支持异步操作,但采用了更加简洁和直观的语法。在Deno中,异步操作可以使用await关键字来等待其完成,这样代码会暂停执行直到异步操作完成。因此,在这段代码中,当执行到异步操作时,Deno会等待一段时间后再退出。

需要注意的是,这段代码在Node.js和Deno中的行为差异是由它们的设计和实现方式所决定的,并不是所有的代码都会出现这种差异。在实际开发中,我们需要根据具体的需求和平台选择合适的运行时环境。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你真的了解回调?

你将在本文中,学习到什么是回调,回调是一种异步操作手段,在平时的使用当中无处不在,究竟如何确定何时使用异步(跳跃式执行,稍后响应,发送一个请求,不等待返回,随时可以再发送下一个请求,例如订餐拿号等饭,发广播,QQ,微信等聊天)还是同步(顺序执行,逐行读取代码,会影响后续的功能代码,也就是发送一个请求,等待返回,然后再发送下一个请求,比如打电话,需要等到你女票回话了,才能继续下面虐狗情节),回调的重要不言而喻,然而当面试时,让你举例出哪些异步回调时,好像除了回答一个Ajax,貌似就再也难以举例了的,本文会让你认识不一样的回调,文若有误导地方,欢迎路过的老师多提意见和指正

03

Go 语言并发编程系列(二)—— Go 协程实现原理和使用示例

Go 语言的协程实现被称之为 goroutine,由 Go 运行时管理,在 Go 语言中通过协程实现并发编程非常简单:我们可以在一个处理进程中通过关键字 go 启用多个协程,然后在不同的协程中完成不同的子任务,这些用户在代码中创建和维护的协程本质上是用户级线程,Go 语言运行时会在底层通过调度器将用户级线程交给操作系统的系统级线程去处理,如果在运行过程中遇到某个 IO 操作而暂停运行,调度器会将用户级线程和系统级线程分离,以便让系统级线程去处理其他用户级线程,而当 IO 操作完成,需要恢复运行,调度器又会调度空闲的系统级线程来处理这个用户级线程,从而达到并发处理多个协程的目的。此外,调度器还会在系统级线程不够用时向操作系统申请创建新的系统级线程,而在系统级线程过多的情况下销毁一些空闲的线程,这个过程和 PHP-FPM 的工作机制有点类似,实际上这也是很多进程/线程池管理器的工作机制,这样一来,可以保证对系统资源的高效利用,避免系统资源的浪费。

02

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券