gpt4 book ai didi

rxjs mapTo 运算符 : evaluate the return value at run time

转载 作者:行者123 更新时间:2023-12-04 01:55:54 25 4
gpt4 key购买 nike

  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 或其他方法解决此类问题的方法?任何见解将不胜感激!

最佳答案

根据official definition ,每次源 Observable 发出一个值时,mapTo 都会在输出 Observable 上发出给定的常量值

因此,您描述的行为是预期的行为。 Math.random() 的第一个评估每次都会保留并发出。

在这里使用 map 来获取您期望的随机值似乎没有错。

关于rxjs mapTo 运算符 : evaluate the return value at run time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com