2016-05-21 9 views
0

Ich verwende Promise, um Rückruf-Hölle zu stornieren.Typ 'Promise <Document>' kann nicht zugeordnet werden Typ 'Versprechen <Document>'

Aber ich traf das Problem der Typumwandlung.

hier ist meine Methode oder Funktion definieren:

findById(entityId: string): Promise<mongoose.Document> { 
    return this._model.findById(entityId).exec(); 
} 

Typoskript Spitzen einige Fehler zu:

[ts] Typ 'Versprechen' ist nicht übertragbar 'Versprechen' zu geben. Arten der Eigenschaft 'then' sind nicht kompatibel. Typ '(onFulFill: (Ergebnis: Dokument) => void | U | Versprechen, onReject ?: (err: any) => void | U | P ...' kann nicht dem Typ '{onfulfilled ?: (Wert: Dokument) => TResult | PromiseLike, onrejected ?: (reas ... Versprechen 'nicht übertragbar ist auf den Typ 'Versprechen fangen Versprechen '

'in Typ fehlt'
' Typ.'' Eigentum.'.

ich möchte wissen, wie dieses Problem erlöschen?

+0

wie es zwei verschiedene "Promise" -Typen, die Sie verwenden. Derjenige, den Sie in der Funktionssignatur zurückgegeben haben, ist nicht der gleiche wie der, den 'exec()' zurückgibt. –

+0

this._model ist mongoose-Objekt, exec() gibt zurück Promise

+0

Von dem, was ich gesehen habe, verwendet mongoose die A + -Vermögens-Bibliothek, und das ist eine andere Implementierung als die native Implementierung. Sie scheinen beide zu mischen –

Antwort

0

prüfen für verschiedene Versprechen Arten verwendet werden. In meinem Fall wurde eine Datei es6-promise importieren, während die andere nicht.

war scheint
Verwandte Themen