【问题标题】:RxJS 6: migrate fromPromise to from with TypescriptTypingsRxJS 6:使用 TypescriptTypings 迁移 fromPromise 到 from
【发布时间】:2019-08-02 19:34:40
【问题描述】:

如何从 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 将有一个序列,数组。但是 promise 可以返回任何对象?

【问题讨论】:

  • somePromiseFn() 返回什么?
  • 你试过from&lt;Promise&lt;SomeInterface&gt;&gt;(...
  • 您找到解决方案了吗?我也有同样的问题

标签: typescript rxjs rxjs6


【解决方案1】:

您唯一需要做的就是使用ObservableInput&lt;T&gt;。像这样:

return from<ObservableInput<SomeInterface>>(somePromiseFn())

这听起来可能有点奇怪,因为您告诉from 函数,somePromiseFn 将返回哪个接口!我建议你这样做是这样的:

// Declare somePromiseFn
function somePromiseFn(): Promise<SomeInterface> {}

// Now use it like this:
return from(somePromiseFn())

所以现在from 函数知道它要转换的 Promise 的类型,所以它会推断出泛型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多