在做了promisify
关于蓝鸟的特定功能之后 - 是否可以获得对已初始化函数的引用?Bluebird:获得原始功能的参考
为什么:我使用的是一个帮助器,它从函数中获取参数名称,以及它返回的promisified函数(_arg0, _arg1, _arg2)
,我希望可以从某处获取原始函数签名。
在做了promisify
关于蓝鸟的特定功能之后 - 是否可以获得对已初始化函数的引用?Bluebird:获得原始功能的参考
为什么:我使用的是一个帮助器,它从函数中获取参数名称,以及它返回的promisified函数(_arg0, _arg1, _arg2)
,我希望可以从某处获取原始函数签名。
不,您可以解决它。
如果是用promisifyAll
promisified您可以访问它没有Async
后缀 - 否则,你必须做你自己:
var promisified = Promise.promisify(cbFunction);
promisified.original = cbFunction;
// access as promisified.cbFunction from that point on.
否则,原有的功能是通过封闭拍摄,你可以不可靠地访问它。诚实地说,你可能不应该因为这会干扰小型化。
这可能有帮助...一个函数promisified版本的名称获得后缀“异步”。剥离并且你回到原来的名字。在任何函数内部,函数本身是'arguments.callee',它的名字是'arguments.callee.name'。 –
为什么不在promisifying之前将原始函数保存到自己的变量中?如果您向我们展示了整体问题的背景,我们可能会有更多选择。或者,你可以附上原件作为promisified之一的财产。 – jfriend00
你的代码不应该依赖代码中的函数签名甚至参数名称。你到底在做什么? – Bergi