在做了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