首页 > 解决方案 > NodeJs 中回调参数的最佳实践

问题描述

背景

我是Node.js 中用于快速对象遍历的低级库的维护者。该库的重点是速度,并且经过大量优化。但是有一个很大的放缓:回调参数

问题

回调由库使用者提供,每次扫描可以多次调用。对于每次调用,都会计算所有参数并将其传递给回调。在大多数情况下,回调实际上只使用了一小部分参数。

目标

目标是消除对这些参数的不必要计算。

解决方案思路

问题

这是一个非常基本的设计决策,我正在努力做到这一点。

非常感谢您的宝贵时间!一如既往的赞赏!

标签: javascriptnode.jsoptimizationcallbacksoftware-design

解决方案


您可以将一个对象传递给回调,该对象具有各种方法,使用回调的客户端可以调用该对象以获取他们实际需要的任何参数。这样,您将拥有一个干净的对象接口,并且您只需计算实际请求的必要信息。

这种通用设计模式有时被称为“惰性计算”,您只需根据需要进行计算。您可以使用访问器函数或 getter,具体取决于您要公开的接口类型。

出于性能原因,您也许可以在每次调用回调时重用相同的对象,而不是构建一个新对象(取决于您的实现细节)。

请注意,您甚至不必将计算所需的所有信息都放入对象本身,因为在某些情况下,对象上的方法可以在进行计算时引用您自己的本地上下文和本地范围的变量。


推荐阅读