wraps Ich schreibe Integrationstests auf ein paar Funktionen mit Mocha, wo einige sind sync und andere async (gibt Q Versprechen).Wie synchrone Funktion in Versprechen mit Q
Ich habe drei Funktionen, A
, B
und C
. Jede Funktion gibt einen Wert zurück, der von der nächsten Funktion verwendet werden soll.
A
und C
sind synchron, aber B
gibt ein Versprechen. Ich muss sie in der Reihenfolge A
>B
>C
aufrufen.
Wenn sie alle synchron wären, würde es wie folgt aussehen: C(B(A(args)))
.
Im Moment sieht mein Code wie folgt aus:
it('should pass this test', function() {
return B(A('args'))
.then(result => Q(C(result)))
.then(result => {
// bunch of assert statements
})
})
Ich bin kein Fan von dieser Zeile: .then(result => Q(C(result)))
In bluebird
würde ich tun, nur .then(Promise.method(C))
, aber ich habe Q zu verwenden, in Diese Situation und ich konnte keine ähnliche Methode in Q finden.
Gibt es eine Möglichkeit, dies in Q zu tun?
Ah, sehen! then() kann sowohl Sync- als auch Async-Funktionen übernehmen, ich kann nicht glauben, dass ich das vorher nicht bemerkt habe. –