RxJS 6:使用TypescriptTypings从Promise迁移至

时间:2019-03-12 10:47:43

标签: typescript rxjs rxjs6

如何在保持输入正确的同时从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将具有序列,数组。但是诺言可以返回任何对象吗?

1 个答案:

答案 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的类型,因此可以推断出泛型。