angular - 无法使用 withlatestfrom 订阅多个 observable
问题描述
我有三个可观察对象,需要将这些值作为参数传递给服务,所以我尝试使用WithLatestFrom()来实现这一点,但是当我将所有值都作为可观察对象时,它工作正常。
this.payment$.pipe(
withLatestFrom(this.first$, this.second$, this.three$)
).subscribe((v, first, second, three) => {
this.methodInfoService.fetchInfo(v, first, second, three)
})
但问题是,第一个 observable 有时可能是未定义的,因此我无法订阅其他两个 observale。请建议是否有任何替代解决方案来实现这一目标。
解决方案
当你使用 combineLatest/withLatestFrom 时,你必须确保所有的 observables 至少发出一个值。因此,在这种情况下,解决方案取决于您的期望。您可以为 first$ 设置默认值。例如
withLatestFrom(this.first$.pipe(startWith('yourDefaultValue')), this.second$, this.three$)
推荐阅读
- flutter - Flutter中LinearPercentIndicator的不同progressColor
- python - 我的 twilio 消息已发送,但我没有看到该消息
- powerbi - Power BI - Power Query 编辑器:删除所有重复项(不要留下任何属于重复项的行)
- android - 为什么 expo-updates 不提供 checkForUpdateAsync?
- python - 问题我的子弹没有射向玩家
- c++ - 当基数为浮点数/双精度时,二进制求幂无法正常工作
- react-native - 在本机反应中未从 Firestore 获取数据
- php - Laravel 模型 created_at 显示不一致
- web - 浏览器未为部署在 aws cloudfront 上的 fetch api 设置 cookie
- python - 如何从用户接受逗号分隔的数字序列并生成列表和元组?