在 RxJS 5.x 中使用 from 创建 Observable 的最佳方式?
Best way to create Observable, using from, in RxJS 5.x?
现在我们有了 "lettable" 个运算符,我们应该如何从另一个运算符创建一个 Observable
?
当我尝试做的时候:
import {Observable} from 'rxjs/Observable'
const source = Observable.from(someOtherStream)
我收到错误 Observable.from is not a function
,这是有道理的,因为 from
现在是其他需要单独导入的东西。
我不想做
import 'rxjs/add/observable/from'
由于那里的原型问题。
我最后做的是:
import { Observable } from 'rxjs/Observable'
import { from } from 'rxjs/observable/from'
const myNewStream = from.call(
Observable,
someOtherStream
)
但出于某种原因,这对我来说确实是 "hacky" 的感觉。有没有人有更好的方法来解决这个问题?
出租屋在后面 rxjs/operators
here's the write up on it.
对于 from
,您应该能够在不导入 Observable 的情况下导入它。
import { from } from 'rxjs/observable/from';
const prom = new Promise(res => setTimeout(
() => res('promise'), 3000
));
from(prom).subscribe(x => console.log(x));
以这种方式使用 from
可以让您 pipe()
成为可出租的运营商。
import { from } from 'rxjs/observable/from';
import { map } from 'rxjs/operators/map';
const prom = new Promise(res => setTimeout(
() => res('promise'), 3000
));
from(prom).pipe(
map(x => x.split('').reverse().join(''))
).subscribe(x => console.log(x));
我认为这是对 from
的误解。它只是一个接受 "stream"(即 Observable、Promise、数组……)并从中创建一个 Observable 的函数。
这意味着您可以像使用任何其他函数一样使用它:
import { from } from 'rxjs/observable/from'
from(someOtherStream).pipe(...).subscribe(...)
现在我们有了 "lettable" 个运算符,我们应该如何从另一个运算符创建一个 Observable
?
当我尝试做的时候:
import {Observable} from 'rxjs/Observable'
const source = Observable.from(someOtherStream)
我收到错误 Observable.from is not a function
,这是有道理的,因为 from
现在是其他需要单独导入的东西。
我不想做
import 'rxjs/add/observable/from'
由于那里的原型问题。
我最后做的是:
import { Observable } from 'rxjs/Observable'
import { from } from 'rxjs/observable/from'
const myNewStream = from.call(
Observable,
someOtherStream
)
但出于某种原因,这对我来说确实是 "hacky" 的感觉。有没有人有更好的方法来解决这个问题?
出租屋在后面 rxjs/operators
here's the write up on it.
对于 from
,您应该能够在不导入 Observable 的情况下导入它。
import { from } from 'rxjs/observable/from';
const prom = new Promise(res => setTimeout(
() => res('promise'), 3000
));
from(prom).subscribe(x => console.log(x));
以这种方式使用 from
可以让您 pipe()
成为可出租的运营商。
import { from } from 'rxjs/observable/from';
import { map } from 'rxjs/operators/map';
const prom = new Promise(res => setTimeout(
() => res('promise'), 3000
));
from(prom).pipe(
map(x => x.split('').reverse().join(''))
).subscribe(x => console.log(x));
我认为这是对 from
的误解。它只是一个接受 "stream"(即 Observable、Promise、数组……)并从中创建一个 Observable 的函数。
这意味着您可以像使用任何其他函数一样使用它:
import { from } from 'rxjs/observable/from'
from(someOtherStream).pipe(...).subscribe(...)