首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Deno有跟踪异步上下文的方法吗?

问Deno有跟踪异步上下文的方法吗?
EN

Stack Overflow用户
提问于 2020-06-23 21:43:32
回答 1查看 405关注 0票数 4

广义地说,在NodeJS中,每当代码运行时,程序就会创建“异步上下文”,然后通过事件循环或微任务队列创建要运行的回调。网络请求、setTimeout回调、承诺等。

在NodeJs的现代版本中,您可以使用(仍然是实验性的) async_hooks module来跟踪这些异步资源的生命周期。

早期版本的NodeJS有现在被废弃的process.addAsyncListener --由the async-listener polyfill package保存。

Deno是否有任何内置或第三方功能,允许用户代码跟踪这些异步上下文的创建?还是德诺的工作方式让这成为一个不相关的概念?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 05:56:29

我不认为这样的功能目前是公开的,或通过第三方模块。

简单地看一下async_hooks提供的功能(可能遗漏了一些重要的东西,请纠正我),init和promiseResolve似乎更像Deno中的有趣功能(Deno在其API中很少使用回调)。

Deno执行特权操作的方式是将序列化的文本消息(主要是JSON)和零拷贝缓冲区发送到Rust端,并且当Rust端用响应消息调用回调时,它会接收来自锈蚀侧的消息。如果我们可以通过在一些核心消息通道方法(例如Deno.core.dispatchByName )中添加一个小的包装侦听器来拦截其中的一些,将会很有趣(这个方法几乎被所有Deno特权操作、异步或同步使用)。在Deno.core上还有很多有趣的东西可用,请参阅源代码中的core/core.js。但是,接收来自Rust的异步消息的handleAsyncMsgFromRust并没有公开)。

不幸的是,Deno.core目前被冻结(实际上是我负责此更改),以避免覆盖(这会在升级时造成硬崩溃,因为Deno.core主机非常重要,但内部API不稳定)。您可能会在Deno中打开一个问题,询问其他人是否愿意实现某种界面,以允许用户向概念性的send和recv方法注入消息捕获回调。(我目前无法缴款)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62544235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档