假设我有一个如下所示的函数:
const mapObservableToObject = o$ => ({
counter: o$.pipe(
pluck('values', 'counter')
)
username: o$.pipe(
pluck('user', 'username'),
map(sanitizeUsername)
)
input: unrelatedObservable$.pipe(
pluck('target', 'value'),
distinct(),
auditTime(300)
)
})
我如何使用现有的可观察对象和这样的函数创建新的可观察对象?新的 observable 应该发出形状为 { counter, username, input }
的值,其中包含各自 observable 的最新值,默认为 null
当它没有收到值呢。 (但可能是可选的默认值?)
最佳答案
尝试
const mapObservableToObject = o$ => ({
counter: o$.pipe(
pluck('values', 'counter'),
startWith(null)
)
username: o$.pipe(
pluck('user', 'username'),
map(sanitizeUsername),
startWith(null)
)
input: unrelatedObservable$.pipe(
pluck('target', 'value'),
distinct(),
auditTime(300),
startWith(null)
)
})
const { counter, username, input } = mapObservableToObject(obs$);
combineLatest(counter, username, input).subscribe(v => console.log(v));
关于javascript - 如何使用将 Observable 映射到值是可观察对象的对象的函数来映射 Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51913551/