我想计算单个可观测物体的排放量之间的差异。
如果一个可观测的物体发出一个新的值,有没有办法同时得到它当前和以前的发射?我想要这样的东西:
ob$.subscribe(val => {
console.log(val)
// First emission: [1,2,3]
// Second emission: [1,2,3,4]
console.log(arrayDifference(before, after)) // [4]
})
我该怎么做呢?我是否需要将每个发射存储在一个上限变量中,或者是否有一种奇特的RxJS方法来实现这一点?
我会使用startWith和pairwise()
const randomObservable = of('observableString')
.pipe(startWith('defaultString'), pairwise())
.subscribe(arrayOfStrings => console.log(arrayOfStrings[0], arrayOfStrings[1]));
上面的代码将控制台日志:“defaultString”,“observableString”。
使用扫描操作员检查上一个值
const arrayDifference = (before, after) => {
// Immlement the fuction here
const difference = .........
return difference
}
ob$.pipe(scan((before,after) => arrayDifference(before,after), [])).subscribe(val => console.log(val))
这应该行得通
在组件中: 在init上,我可以观察到 如何获取当前值,如?
我有一个简单的api请求,它向一个对象返回一个可观察的对象,该对象中有一组项,每个项中都有一个链接。因此,我想在当前异步流中直接获取链接后面的数据,但我收到一个CORS错误,错误是: 这是否可能与我当前的函数?还是我误解了一些基本概念?
使用rxjsv6 所以我有多个我想要跟踪/观察的变量,当它们中的任何一个发生变化时,触发一个可观察对象来调用一个API,该API然后根据这些变量更新其他内容。 我想我可能会在上触发一个事件来强制可观察对象做一些事情,但它不会根据我想要的返回结果 例如。 然而,在可观测数据上没有订阅方法。我试图修改我的另一个观察值(这是可行的)
我有一个定期发出JavaScript对象的行为主题。我想构建另一个可观察对象,它将发出底层可观察对象的先前和当前值,以便比较两个对象并确定增量。 pairwise()或bufferCount(2,1)操作符看起来很合适,但它们只有在缓冲区填满后才开始发出,但我要求这个可观察对象从基础可观察对象的第一个事件开始发出。 在第一次发射时,可能只是。 是否有一些内置的运算符,我可以使用以达到预期的结果?
我有两个源观测值,当一个源观测值发出时,我需要计算一些数据。我试图使用操作符,但它只在每个源观测值第一次发出时发出一个值。 是否有任何运算符类似于,一旦任何源可观测对象第一次发出,就立即发出?如果没有,最清晰的方法是什么? 我所尝试的: