function c() {
return Math.random();
}
source$.pipe(
map(a => c())
).subscribe(v => console.log(v));
假设有一个简单的代码,如上所示。我尝试的是当源流发出某些内容时记录值,但显然,我记录的值与源流中的值无关。所以它让我考虑使用这样的运算符mapTo
:
function c() {
return Math.random();
}
source$.pipe(
mapTo(c())
).subscribe(v => console.log(v));
但正如您可能猜到的那样,值总是相同的。更准确地说,它保留为第一个值,这不是我想要的。
所以我的观点是,我希望每次源发出我在评估中不使用的值时执行评估。我可以通过使用运算符让它像第一map
代码一样工作,但是当我不使用源流中的值时,使用map
似乎不对。像这样使用map
可以吗?或者使用mapTo
或其他东西对这种事情有什么解决方法吗?任何见解将不胜感激!
根据官方定义,每次源 Observable 发出值时,mapTo
都会在输出 Observable 上发出给定的常量值。
因此,您描述的行为是预期的行为。每次都会保留并发出来自Math.random()
的第一个评估。
在这里使用map
来获取预期的随机值似乎没有错。