我試圖Promisify條紋模塊,但遇到問題。Promisify節點模塊上的所有子方法
如果我運行:
const stripe = Promise.promisifyAll(require('stripe')(secretKey));
const response = await stripe.accounts.retrieveAsync();
retrieveAsync不是一個函數。我必須這樣做:
const accounts = Promise.promisifyAll(stripe.accounts);
const response = await accounts.retrieveAsync();
但顯然這並不能很好地擴展。我怎樣才能提出這個模塊的所有子方法?由於
'accounts'沒有在您的第一個片段中定義。你是不是指'stripe.accounts'? – cartant
是的,很好的眼睛,固定 – Antoine
你可以創建你自己的遞歸解決方案,將開始與條紋對象,調用'Promise.promisifyAll()',然後找到任何屬性也包含普通對象,並調用'Promise.promisifyAll )'在這些子對象上遞歸地重複。對於邊緣情況,您可能必須通過保留已經遞歸的所有對象的Set對象並拒絕執行已經完成的對象來保護自己免受循環引用的影響。可能有某些屬性需要避免處理(如'.prototype')。 – jfriend00