如何在保持输入正确的同时从Promise从RxJS 5迁移到RxJS 6?
RxJS 5,一切正常:
return Observable.fromPromise<SomeInterface>(somePromiseFn())
RxJS 6:
return from<SomeInterface>(somePromiseFn())
抱怨:
Type 'SomeInterface' does not satisfy the constraint 'ObservableInput<any>'.
Type 'SomeInterface' is not assignable to type 'ArrayLike<any>'.
因此,如果我理解正确,它期望from将具有序列,数组。但是诺言可以返回任何对象吗?
答案 0 :(得分:0)
您唯一需要做的就是使用ObservableInput<T>
。像这样:
return from<ObservableInput<SomeInterface>>(somePromiseFn())
这听起来有些怪异,因为您正在告诉from
函数,somePromiseFn
将返回哪个接口!我建议您改为执行以下操作:
// Declare somePromiseFn
function somePromiseFn(): Promise<SomeInterface> {}
// Now use it like this:
return from(somePromiseFn())
所以现在from
函数知道将要转换的Promise的类型,因此可以推断出泛型。