【发布时间】:2021-05-01 13:50:32
【问题描述】:
我想在原始 observable 完成时发出一个值,让我们说如下,使用假想运算符 mapComplete:
let arr = ['a','b', 'c'];
from(arr)
.pipe(mapComplete(()=>'myValue'))
.pipe(map((v)=>`further processed: ${v}`))
.subscribe(console.log)
//further processed: myValue
我尝试了以下方法,但似乎不合适:
1.
from(arr)
.pipe(toArray())
.pipe(map(()=>'myValue'))
.pipe(map((v)=>`further processed: ${v}`))
.subscribe(console.log);
//further processed: myValue
问题:如果原始 observable 是一个巨大的流,我不想将它缓冲到一个数组中,只是为了发出一个值。
2.
from(arr)
.pipe(last())
.pipe(map(()=>'myValue'))
.pipe(map((v)=>`further processed: ${v}`))
.subscribe(console.log);
//further processed: myValue
问题:如果流完成但没有发出任何内容,我会收到错误:[Error [EmptyError]: no elements in sequence]
执行上述操作的正确方法是什么(以 rxjs 而言)?
【问题讨论】:
标签: rxjs observable rxjs6