2016-08-02 7 views
-1

私は、コールバックエラーと応答の形式で特定のサービス関数を用意しているため、正常に宣言できます。Bluebird promisifyAll個別のpromisifying関数の代わりに

例:コントローラから service.js

functionA(callback) { 
... 
callback(error, response); 
} 
functionB(callback) { 
... 
callback(error, response); 
} 
module.exports.functionA = functionA; 
module.exports.functionB = functionB; 

は、Iが正常

const functionA = Promise.promisify(service.functionA); 
const functionB = Promise.promisify(service.functionB); 

を用いpromisifiedが、コードを最適化するために、私が使用される:

const {functionA, functionB} = Promise.promisifyAll(service); 

あります動作していません...エラー "コールバックは関数ではありません"。 Bluebird promisifyを使用することはできませんか?

const {functionAAsync, functionBAsync} = Promise.promisifyAll(service); 

の作業罰金:Bluebird doc 1として

+0

'promisifyAll'は接尾辞付きメソッド名を持つ新しいメソッドを作成します。あなたの破壊は、元の方法を取得します。 – Bergi

+0

申し訳ありません@Bergi、私はあなたを手に入れます。それらの機能を私のようにマッピングすることはできませんか? – Nisha

+0

いいえ、可能性はありません。 'const {functionAAsync、functionBAsync} = ...'を実行する必要があり、コンテキストが失われても動作しません。 – Bergi

答えて

2

は、通話中に接尾辞を使用していました。

関連する問題