3
我開始了一個新項目,我想使用TypeScript而不是純Javascript。我正在努力將Bluebird與第三方庫結合使用。藍鳥和es6承諾打字稿
請看下面的例子:
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'與 不兼容。
它取決於您正在使用的庫返回的Promise類型。如果它返回一個香草Promise,您可以手動映射到另一個,或者簡單地使用原生Promise而不是藍鳥。 –
什麼是香草諾言?我認爲它會返回一個原生的ES6承諾,並且當我使用原生承諾時,我實際上需要在任何地方使用原生承諾或?所以調用requestPlayerProfile函數的所有路由/函數都需要與Bluebird一起工作。如果我真的需要一直混合本地和藍鳥諾言,是不是真的說服我使用藍鳥? – kentor