Wenn zum ablehnen/lösen ein Versprechen

Bin ich darüber nachdachte, wie genau muss ich ablehnen, ein Versprechen.
Ich fand ein paar Fragen zu diesem Thema, aber konnte nicht finden, eine richtige Antwort.
Wann sollte ich ablehnen, ein Versprechen?

Diesem Artikel
http://howtonode.org/6666a4b74d7434144cff717c828be2c3953d46e7/promises
sagt:

  • Beheben: Ein erfolgreiches Versprechen ist 'gelöst', die unter Berufung auf den Erfolg Listener wartet und merkt sich den Wert, der beschlossen wurde, für den Erfolg der Zukunft die Hörer angeschlossen sind. Auflösung entspricht der zurückgegebene Wert.
  • Ablehnen: Wenn ein Fehler aufgetreten ist, ein Versprechen ist, "abgelehnt", das ruft den Fehler-Listener wartet und merkt sich den Wert, der abgelehnt wurde, für zukünftige Fehler Zuhörer verbunden sind. Ablehnung in Beziehung zu einer ausgelösten Ausnahme.

Ist das Prinzip Leitlinie?
Dass man nur gegen ein Versprechen, wenn eine Ausnahme aufgetreten ist?

Aber im Falle einer Funktion wie

findUserByEmail()

Ich würde erwarten, dass die Funktion zur Rückgabe eines Benutzers, so dass ich die Kette weiter, ohne zu überprüfen, ob das Ergebnis

findUserByEmail()
    .then(sendWelcomeBackEmail)
    .then(doSomeNiceStuff)
    .then(etc..)

Welche sind am besten /häufigsten praktiziert?

  • Ihre Beschreibung von Ablehnung kann falsch sein ich verstehe es, wenn von "der Zukunft" meinst du "unten in der Kette". Wenn ein error-handler wird ausgeführt, der Rückgabewert wird benutzt, um erfüllen (nicht ablehnen) nachfolgende verspricht. Also einmal ein Fehler-handler ausgeführt wird, wird der Fehler als behandelt, und die Ausführung erfolgt auf der Erfolg-Seite. Um es einen anderen Weg, wenn Sie wollen, um einen Fehler zu behandeln in aufeinander folgenden Schritten in der Kette, der erste Fehler-handler müssen rethrow, um für die nachfolgende Fehler-Handler in der Kette aufgerufen werden, genau wie try/catch.
  • Zur info, der Artikel, den Sie zitieren, ist ein bisschen ungenau; es heißt "lösen", wenn er sagen sollte "erfüllen."
Schreibe einen Kommentar