Firebase:firebase.Promise<any> 与 Rxjs Promise<any> 的兼容性
Posted
技术标签:
【中文标题】Firebase:firebase.Promise<any> 与 Rxjs Promise<any> 的兼容性【英文标题】:Firebase : firebase.Promise<any> compatibility with Rxjs Promise<any> 【发布时间】:2017-02-07 17:42:07 【问题描述】:我正在尝试使用 angular-cli 生成的项目将 firebase.Promise
转换为 Observable
。
Here据说firebase.Promise
兼容Native Promise
和Promise/A+
的实现。
但是,当我尝试使用 rxjs 的 Observable.fromPromise()
方法时出现错误。
Argument of type 'firebase.Promise<any>' is not assignable to parameter of type 'Promise<any>'.
Types of property 'then' are incompatible.
Type '(onResolve?: (a: any) => any, onReject?: (a: Error) => any) => Promise<any>' is not assignable to type ' <TResult1, TResult2>(onfulfilled: (value:
any) => TResult1 | PromiseLike<TResult1>, onrejected:...'.
Type 'firebase.Promise<any>' is not assignable to type 'Promise<any>'.
它确实有效,但是出错很烦人,有什么想法可以以一种干净的方式避免这个错误吗?
谢谢。
【问题讨论】:
你在使用 TypeScript 吗? 是的,我正在使用 TS 【参考方案1】:在 TypeScript 中,您可以使用类型转换:
let promise = firebase.whatever();
Observable.fromPromise(<Promise<any>>promise);
【讨论】:
以上是关于Firebase:firebase.Promise<any> 与 Rxjs Promise<any> 的兼容性的主要内容,如果未能解决你的问题,请参考以下文章
无法从“firebase.js”解析模块“firebase”:在项目中找不到 Firebase
VueJS + Firebase 使用 Firebase 绑定
无法解决:com.google.firebase:firebase-ml-vision:24.1.3;无法解决:com.google.firebase:firebase-core:20.0.2
没有创建 Firebase 应用“[DEFAULT]” - 在 Flutter 和 Firebase 中调用 Firebase.initializeApp()
如何修复 Firebase 9.0 导入错误? “尝试导入错误:‘firebase/app’不包含默认导出(导入为‘firebase’)。”