2016-07-11 14 views
0

いくつかの関数はsyncであり、他の関数はasync(Q promiseを返す)を使って2つの関数の積分テストを書いています。Qを使って約束して同期関数をラップする方法

私は3つの機能、ABおよびCを持っています。各関数は、次の関数が使用する値を返します。
ACは同期ですが、Bは約束を返します。 A>B>Cの順に呼び出す必要があります。
すべてが同期している場合は、C(B(A(args)))のようになります。

は今、私のコードは次のようになります。私はちょうど.then(Promise.method(C))を行うだろうbluebird.then(result => Q(C(result)))

が、私はにQを使用する必要があります。

it('should pass this test', function() { 
    return B(A('args')) 
    .then(result => Q(C(result))) 
    .then(result => { 
     // bunch of assert statements 
    }) 
}) 

私は、この行のファンではありませんこの状況と私はQで同様の方法を見つけることができませんでした。

Qでこれを行う方法はありますか?

答えて

1

あなたはC

return B(A('args')) 
    .then(C) 
    .then(resultOfC => ... 
+0

ああをラップする必要はありません、私が参照してください!その後()は同期と非同期の両方の機能を持つことができます。 –