【问题标题】:Events on function execution and completion in JS/NodeJS [closed]JS / NodeJS中的函数执行和完成事件[关闭]
【发布时间】:2018-11-30 06:58:42
【问题描述】:

我想知道当我们在 nodejs 中调用函数时是否会发出任何默认事件,以及函数的回调/承诺完成时是否会发出任何事件。如果有这样的事件,它们被称为什么(即它们以什么名称注册),我们可以使用侦听器捕获它们并进行一些操作吗?

【问题讨论】:

  • 不,没有这样的事件。你会想要操作函数本身。
  • @Bergi,所以我可以按照特定模式装饰所有函数并在调用和完成时发出事件,然后我可以监听这些事件并进行我需要的所有操作
  • 是的,你可以这样做。
  • 另一方面,根据您的用例,看看您的引擎的调试器 API,它确实有分析事件之类的东西。
  • @TGW 在您在这里询问之后,您能在此期间得到答案吗?我有同样的问题,它是使用不通过 IO 进程调用的回调而上升的,我想知道“所以在哪个事件/调用者上调用了这个函数?”我认为这可能是对 JS 环境内部流程的误解,但我找不到正确的术语或词来提出正确的问题!

标签: javascript node.js event-handling dom-events


【解决方案1】:

我不知道默认发出的任何内容。

您可以轻松地在函数中实现回调,如下所示:

function callbackFnOnCompletion(a, b, callbackFn) {
  // function body
   callbackFn();
}

现在,你可以这样称呼它:

callbackFnOnCompletion(1, 2, () => console.log('Hi'));

对于承诺,.then(fn).catch(fn) 是最佳选择。

Promise.resolve(1)
.then(() => console.log('Promise resolved'))
.catch(() => console.log('Promise rejected'))

【讨论】:

  • 对不起,这个问题不够详细,但我知道我可以如何利用回调本身,但我想要的是有一种方法,无论调用/执行什么函数(由开发人员创建)我都应该能够拦截这个并做一些我的事情。例如。面向对象语言中的 AOP...
  • @TGW 幸运的是 JS 是一种 OOP 语言,你可以轻松地做 AOP :-)
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2021-02-13
  • 2022-07-25
  • 2013-04-23
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
相关资源
最近更新 更多