我正在使用RxJS 6.2.1,并且正在尝试将可观察对象转换为Promise
如果我使用订阅创建一个可观察的简单范围,我将获得随着时间推移发出的值。
import { range } from 'rxjs'
const source$ = range(0, 10);
source$
.subscribe(
x => console.log(x),
err => console.log(err),
() => console.log('complete')
)
但是我如何将整个事情转换成承诺?我尝试过.toPromise()
,但只返回了一个值“ 9”
import { range } from 'rxjs'
const source$ = range(0, 10);
source$
.toPromise()
.then(x => console.log('x', x)) . //only get back "9"
.catch(err => console.log('err', err))
我该如何重写它以便从0到9取回一个数组?
答案 0 :(得分:1)
这会将可观察流中的所有值转换为数组,并将该数组解析为承诺值。
of('a','b','c','d').pipe(
toArray()
).toPromise().then(val => console.log(val))