Bluebird:获取对承诺的原始功能的引用
Bluebird: Get reference to original function that was promisified
在使用 bluebird 对特定函数执行 promisify
之后 - 是否可以获得对被承诺的原始函数的引用?
原因:我正在使用一个助手,它从函数中获取参数名称,并在它返回的承诺函数上返回 (_arg0, _arg1, _arg2)
,我希望可以从某个地方获取原始函数签名。
不,你可以解决它。
如果它是用 promisifyAll
承诺的,你可以在没有 Async
后缀的情况下访问它 - 否则,你必须自己做:
var promisified = Promise.promisify(cbFunction);
promisified.original = cbFunction;
// access as promisified.cbFunction from that point on.
否则,原始函数是通过闭包捕获的,您无法可靠地访问它。老实说,您可能不应该这样做,因为无论如何都会干扰缩小。
在使用 bluebird 对特定函数执行 promisify
之后 - 是否可以获得对被承诺的原始函数的引用?
原因:我正在使用一个助手,它从函数中获取参数名称,并在它返回的承诺函数上返回 (_arg0, _arg1, _arg2)
,我希望可以从某个地方获取原始函数签名。
不,你可以解决它。
如果它是用 promisifyAll
承诺的,你可以在没有 Async
后缀的情况下访问它 - 否则,你必须自己做:
var promisified = Promise.promisify(cbFunction);
promisified.original = cbFunction;
// access as promisified.cbFunction from that point on.
否则,原始函数是通过闭包捕获的,您无法可靠地访问它。老实说,您可能不应该这样做,因为无论如何都会干扰缩小。