[英]Bluebird and es6 promises in typescript
我开始了一个新项目,我想使用TypeScript而不是纯Javascript。 我正在努力将Bluebird与第三方库结合使用。
请参阅以下示例:
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显然返回原生承诺,而我在我的应用程序的其余部分使用Bluebird承诺。 我该如何妥善处理此类案件?
[ts]类型'Promise'不能分配给'Bluebird'类型。 财产类型'然后'是不相容的。
@Filipe正确解释错误消息。
this.limiter.schedule(...)
返回的对象类型是什么,该类型与bluebird.Promise<IPlayerProfile>
不兼容。 limiter.schedule(...)
返回一个“vanila”,即本机的Promise<IPlayerProfile>
对象。 您可以通过转到定义schedule(...)
的源代码轻松找到它。 在我的Visual Studio代码中,我使用F12来实现目标。 注意那里对象的精确返回类型。 bluebird
的承诺; 要么 bluebird
类型 。 我没有尝试过,但以下情况应该有效: return Promise.resolve(this.limiter.schedule(request, requestOptions))
(参见http://bluebirdjs.com/docs/api/promise.resolve.html )。 我希望它有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.