Warum kann ich beim Aufruf von mongoose Model.create im Knoten kein .catch ketten

7

Ich habe ein Mungo-Schema und rufe Model.create ().

Wenn ich nach dem 'then' fang 'kette' bekomme ich nicht undefiniert ist keine Funktion, wenn ich gerade die Fehlerfunktion als zweiten Parameter an 'then' anrufe, dann tue ich das nicht.

Aber wenn ich Methoden wie Model.find aufrufen, kann ich 'catch' verwenden.

Warum kann ich beim Aufrufen von Model.create

keine Kette fangen? %Vor%

funktioniert:

%Vor%

Funktioniert nicht:

%Vor%     
Daniel Billingham 05.06.2015, 17:16
quelle

3 Antworten

8

Nach dem Übergehen sieht es so aus, dass .catch nicht wirklich Teil der Spezifikation Promises / A + ist. Die meisten Bibliotheken scheinen es nur als syntaktischen Zucker zu implementieren. Die MPromise-Bibliothek ist die Versprechens-Bibliothek für Mongoose und scheint den Mindestanforderungen der Spezifikation zu entsprechen. Sie könnten versuchen, eine andere Versprechens-Bibliothek zu verwenden, um Mongoose-Versprechen zu umhüllen, aber es könnte einfacher sein, es einfach anzuhalten und sich an den standardmäßigen .then(success, error) -Handler zu halten.

Wenn Sie sie umbrechen möchten, können Sie das folgendermaßen tun:

%Vor%

Bluebird ist meine Lieblingsimplementierung, aber fast jede populäre Versprechungsbibliothek hat diese Fähigkeit.

    
Chev 05.06.2015, 17:50
quelle
11

Wie auf Ссылка

angegeben
  

Neu in Mongoose 4.1.0   Während mpromise für grundlegende Anwendungsfälle ausreicht, können fortgeschrittene Benutzer ihre bevorzugte ES6-artige Versprechungsbibliothek wie Bluebird verwenden oder einfach native ES6-Versprechungen verwenden. Setzen Sie einfach mongoose.Promise auf Ihren bevorzugten ES6-artigen Promotor und Mungo wird ihn benutzen.

Sie können mongous einstellen, um bluebird zu verwenden:

%Vor%     
jbdemonte 04.01.2016 17:49
quelle
6

Irgendwann scheint mpromise Unterstützung für .catch() hinzugefügt zu haben. Ich verwende [email protected] und .catch() funktioniert ordnungsgemäß wie erwartet.

    
steampowered 19.06.2016 02:34
quelle

Tags und Links