Wie promote ich NodeJS Express mit Bluebird?

7

Ich benutze NodeJS mit Express und verwende Bluebird für Versprechungen. Ich versuche, das App-Objekt wie unten zu promi- sieren, aber sobald Promistified-Funktionen ausgelöst werden, werden immer Fehler ausgegeben. Ein Teil des Codes ist unten:

%Vor%

Ich habe versucht, alle mit demselben Effekt zu promisifizieren. Warum scheitert es und gibt es eine Möglichkeit, post / get zu promitifizieren?

    
spirytus 17.07.2014, 06:01
quelle

1 Antwort

18

Du willst das wirklich nicht wirklich machen. Ein Versprechen ist die falsche Abstraktion dafür.

Ein Versprechen repräsentiert das Ergebnis einer one eventuellen Operation. Ein Versprechen kann seinen Status nur einmal ändern . Selbst wenn Sie es schaffen, app.post korrekt zu promisifizieren, kann es nur einmal einen Client bedienen.

Versprechen sind eine tolle Abstraktion - aber das ist definitiv kein Problem, das Versprechen zu lösen versuchen. Wenn Sie sich stattdessen für interessante Abstraktionen interessieren, können Sie den Q-IO von kriskowal (Q-Autor) oder einen der Versprechens-Router überprüfen, bei denen Sie antworten, aber der Handler selbst wird mehrmals aufgerufen .

Ich kann das nicht genug betonen - Versprechen sind eine großartige Abstraktion, aber sie lösen oder versuchen nicht alle Ihre Nebenläufigkeitsprobleme zu lösen.

    
Benjamin Gruenbaum 17.07.2014, 08:17
quelle