Was passiert, wenn ich ablehnen / beheben mehrere Male in Kriskowal ist q?
Studiere ich die Versprechen, die Muster und mit kriskowal q für node.js,
dass dieses snippet:
var deferred = Q.defer();
try {
messageData = JSON.parse(message);
} catch (e) {
global.logger.warn('Error parsing JSON message.');
deferred.reject(e);
}
...
if (some_reason)
deferred.resolve(something);
...
return deferred.promise;
Was passiert, wenn der parser fehlschlägt und some_reason wahr ist?
Wird die Ausführung procede aus der Ablehnung durch das auflösen und beide Versprechen sich die Methode aufgerufen werden, die zu unterschiedlichen Zeiten, wodurch ein bug?
Sollte ich vermeiden, um den Anruf abzuweisen/zu beheben mehrmals?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit Versprechen kann nur einmal beheben (entweder erfüllt oder abgelehnt), die erste Lösung gewinnt und alle weiteren Anrufe werden ignoriert. Von die docs:
Können Sie sogar das design Ihrer Anwendung lassen sich zwei Methoden "Rennen" gegen die jeweils anderen zu lösen, eine latente, aber im Allgemeinen sollte es vermieden werden, um Verwirrung zu reduzieren, der ein Lesegerät.
Q.race(getNextUserClick(), Q.timeout(…)).then(nextScreen)
als mit einer einzigen latenten und manuell zu der Lösung, dass mehrere Male.Race
ist interessant, aber kew.js nicht wirklich, leider.