Ich begann ein neues Projekt, wo ich TypeScript anstelle von reinem Javascript verwenden möchte. Ich habe Probleme mit Bluebird in Verbindung mit Bibliotheken von Drittanbietern.Bluebird und es6 verspricht in typescript
Siehe das folgende Beispiel:
import * as Promise from 'bluebird'
private requestPlayerProfile(playerTag:string):Promise<IPlayerProfile> {
const requestOptions = Object.create(this.options)
return this.limiter.schedule(request, requestOptions)
}
Das Problem: limiter
ist eine Instanz eines Dritten Bibliothek und limiter.schedule liefert eine native Versprechen offenbar, während ich die Drossel Versprechen in den Rest bin mit meiner Bewerbung. Wie würde ich solche Fälle richtig behandeln?
[ts] Typ 'Promise' ist nicht dem Typ 'Bluebird' zuweisbar. Arten der Eigenschaft 'dann' sind inkompatibel.
Es hängt von der Art von Promise ab, die die von Ihnen verwendete Bibliothek zurückgibt. Wenn es ein Vanilleversprechen zurückgibt, können Sie entweder manuell von einem zum anderen mappen oder einfach die nativen Promises anstelle von Bluebirds verwenden. –
Was ist ein Vanilleversprechen? Ich denke, es gibt ein natives ES6-Versprechen und wenn ich das native Promise verwende, müsste ich buchstäblich native Promises überall verwenden oder? Daher müssen alle Routen/Funktionen, die die Funktion requestPlayerProfile aufrufen, auch mit Bluebird arbeiten. Lässt mich Bluebird nicht wirklich überzeugen, wenn ich ständig native und bluebird Promises mischen muss? – kentor