Unten ist mein ZustandAufruf Q Versprechen auf der Grundlage der bedingten Logik
if abc is true
call async func1, func2
else
call async func1
function test(): Q.Promise<boolean> {
if(abc)
Q.all([func1,func2])
else
Q.all([func1])
//if failed throw reject reason all the way in the chain
}
- Wie gezeigt, kann es mit
if
undelse
Klausel durchgeführt wird, gibt es eine bessere Art und Weise Versprechen bedingt zu nennen? - Wie man zurückwirft
error from any one of the promises
?
Was passiert, wenn eines der 'Versprechen' abgelehnt wird und wie würde ich diesen' Fehler' den ganzen Weg nach oben werfen? Ich versuche zu lernen "Q.verspricht", also entschuldige, wenn es eine dumme Frage ist :) – Reddy
Du musst nicht explizit werfen. Wenn eine der Funktionen das abgelehnte Versprechen zurückwirft oder zurückgibt, dann wird 'Q.all' auch für Sie ablehnen und der Fehler wird automatisch zu Q.all error handler:' test(). Then (function() {console.log (' alles gut ')}). catch (funktion (fehler) {console.log (' etwas ging schief ')}) '. – dfsq