kriskowal / q node.js q.all und verbreiten

8

Ich habe eine Funktion, die das Ergebnis von drei früheren Versprechungen erfordert. Einer ist linear abhängig und die anderen beiden können gleichzeitig laufen. Ich möchte q.all verwenden, um die drei Versprechen zu lösen, und dann die Ergebnisse mit Hilfe von .spread an die vierte weitergeben. Mein Code funktioniert jedoch nicht. Jede Hilfe wäre willkommen.

%Vor%

Ich kann den Code im Knoten-Inspektor verfolgen und sehen, dass die ersten drei Versprechen aufgerufen werden. Die Funktion für .spread-Aufrufe wird jedoch nicht aufgerufen. Irgendwelche Hinweise, warum? Auch .fail wird nicht getroffen.

    
Daniel Byrne 12.06.2013, 05:41
quelle

2 Antworten

7

Spread Anrufe q.all intern.

Hier ist der Code für die Verbreitung von q.js:

%Vor%

Beachten Sie, dass eine Verheißung erwartet wird, die als erstes Argument in ein Array oder ein Array aufgelöst wird.

Daher sollte Ihr Anruf so aussehen:

%Vor%

Der ursprüngliche Anruf sollte jedoch ebenfalls funktionieren. Nicht sicher warum nicht.

    
Nathan 12.06.2013 14:34
quelle
3

Die kürzeste Art, das von Ihnen angegebene Beispiel auszudrücken, ist:

%Vor%

Das Original ist jedoch korrekt wie geschrieben.

Ich vermute, dass das Problem darin besteht, dass ein oder mehrere der Eingabeversprechen niemals aufgelöst werden. Verwenden Sie Timeouts, um das Problem zu isolieren.

%Vor%     
Kris Kowal 12.06.2013 17:01
quelle

Tags und Links