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