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
或其他内容的此类问题的解决方法?任何见解将不胜感激!
答案 0 :(得分:2)
根据official definition,每当源Observable发出一个值时,mapTo
就会在输出Observable上发出给定的常量值。
因此,您描述的行为是预期的行为。每次都保留并发出Math.random()
的第一次评估。
在这里使用map
来获取随机值是没有错的。