3
純粋なJavascriptの代わりにTypeScriptを使いたい新しいプロジェクトを開始しました。私はBluebirdをサードパーティライブラリと組み合わせて使用することに苦労しています。Bluebirdとes6はtypescriptで約束します
次の例を参照してください:
import * as Promise from 'bluebird'
private requestPlayerProfile(playerTag:string):Promise<IPlayerProfile> {
const requestOptions = Object.create(this.options)
return this.limiter.schedule(request, requestOptions)
}
問題:limiter
は、サードパーティのライブラリのインスタンスであると私は残りの部分でブルーバード約束を使用していながらlimiter.scheduleは、明らかにネイティブの約束を返します。私のアプリケーションの。どのように私はそのようなケースを適切に扱うだろうか?
[ts]タイプ 'プロミス'タイプは 'ブルーバード'に割り当てられません。プロパティ 'then'のタイプは と互換性がありません。
使用しているライブラリが返すプロミスのタイプによって異なります。それがバニラプロミスを返す場合は、手動でマップするか、ブルーバードの代わりにネイティブプロミスを使用するだけです。 –
バニラプロミスとは何ですか?私はそれがネイティブES6の約束を返すと思います。私が本来のプロミスを使用する場合、文字通りどこでもネイティブ約束を使用する必要がありますか?したがって、requestPlayerProfile関数を呼び出すすべてのルート/関数もBluebirdで動作する必要があります。ネイティブとブルーバードの約束を本当に混ぜる必要があるのであれば、ブルーバードの使用を本当に納得させませんか? – kentor