我有一些函數被寫爲接受兩個回調函數和一些我想Promisify的參數。 例子:如何提升具有多個回調參數的函數?
function myFunction(successCallback, failureCallback, someParam)
鑑於上述功能,我將如何Promisify兩個successCallback
和failureCallback
使用無極庫如藍鳥?
我都試過,但它返回undefined
:
const myFunctionAsync = Promise.promisify(myFunction);
console.log(await myFunctionAsync('someParam')); // undefined
一個工作,但過於冗長的解決方案:
const myFunctionAsync = new Promise((resolve, reject) =>
myFunction(success => resolve(success), failure => reject(failure))
);
console.log(await myFunctionAsync('someParam')); // success
我正在尋找一種方式將這些尷尬多個回調函數轉換成承諾沒有包裝每一個。
非常感謝。
那麼你需要在承諾中創建(包裝)你的回調。無論你自己做還是圖書館有一個方便的實用方法,它似乎是同樣的事情。 –
的確如此,也許我太擔心Promisify函數,它對於最後一個參數是回調的Node樣式函數非常有用。 – Robula