将 ECMAScript Observable / Zen Observable 转换为 RXJS Observable

Jon*_*han 4 observable rxjs typescript urql

我有一个符合规范的 ECMAScript Observable,特别是来自wonka 库。我正在尝试将这种类型的 observable 转换为 rxjs 6 observable,但没有成功。

看来这在 rxjs 5 中是可能的。我已经尝试过:

import { pipe, toObservable, fromArray } from 'wonka';
import { from } from 'rxjs';
...
from(
  pipe(
    fromArray([1, 2, 3]),
    toObservable
  )
);
Run Code Online (Sandbox Code Playgroud)

我在浏览器中收到此错误:

ERROR TypeError: You provided an invalid object where a stream was expected. 
You can provide an Observable, Promise, Array, or Iterable.
Run Code Online (Sandbox Code Playgroud)

然后是这个:

Argument of type 'observableT<any>' is not assignable to parameter
of type 'ObservableInput<any>'
Run Code Online (Sandbox Code Playgroud)

在可视化代码对话框中。

我可以通过这样做将其转换为zen-observable :

ERROR TypeError: You provided an invalid object where a stream was expected. 
You can provide an Observable, Promise, Array, or Iterable.
Run Code Online (Sandbox Code Playgroud)
Argument of type 'observableT<any>' is not assignable to parameter
of type 'ObservableInput<any>'
Run Code Online (Sandbox Code Playgroud)

然而,zen-observable不是同一件事,并且不允许我使用所有rxjs方法等......

如何将其转换为rxjs observable?

谢谢杰

bac*_*ick 10

编写一个转换函数,利用订阅 API 相同的事实:

const zenToRx = <T>(zenObservable: Zen.Observable<T>): Rx.Observable<T> =>
  new Rx.Observable(
    observer => zenObservable.subscribe(observer)
  );
Run Code Online (Sandbox Code Playgroud)