- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个可观察的流设置如下。我有一个间隔,每两秒轮询一次。然后我 switchMap 进行两个相关的 API 调用(这里用 'of's 模拟)。之后,我想使用 distinctUntilChanged 来确保最终对象不同。唯一的事情是 distinctUntilChanged 不会触发。
我假设它与我们正在创建新流并因此从不收集两个对象进行比较的事实有关,但我不完全理解。
interval(2000).pipe(
switchMap(() => loadData()),
)
.subscribe(res => console.log(res)); // { name: 'test' } is printed every two seconds
function loadData() {
return of('API call').pipe(
mergeMap(numb => of({ name: 'test' })),
distinctUntilChanged((prev, cur) => {
console.log('CompareFn'); // This will never fire.
return JSON.stringify(prev) === JSON.stringify(cur)})
);
}
最佳答案
问题是你的 distinctUntilChanged 是在内部 observable 上运行,而不是外部......你需要这样做
interval(2000).pipe(
switchMap(_ => loadData()),
distinctUntilChanged((prev, cur) => {
console.log('CompareFn');
return JSON.stringify(prev) === JSON.stringify(cur);
})
)
.subscribe(res => console.log(res));
function loadData() {
return of('API call').pipe(
mergeMap(numb => of({ name: 'test' }))
);
}
关于rxjs5 - 在带有 switchMap 的嵌套管道中进行 distinctUntilChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57065724/
我不知道这之间是否有区别: Observable.pipe( switchMap((res) => { ... }),
我有以下代码 const mySource:Observable[]> (...) mySource.pipe( switchMap(arr=>forkJoin(arr)); ) 按预期工作,但
我正在尝试将 ViewModel 与某些 LiveData 一起使用,这些 LiveData 使用另一个 LiveData 的值。 为此,我尝试使用 Transformations.switchMap
我有以下组件: @Component({...}) export class AppComponent implements OnInit, OnDestroy { destroy$ = new
以下用例:用户可以加入 0...* 组。每个组都有一个 ID 并包含 0...* 个帖子。 我订阅了一个 Observable(以获取他加入的用户的组)并返回一个字符串数组(组 ID)。 const
我有 3 个端点返回即将发生的、当前的、过去的事件。我应该只显示 future 最远的那个。为了优化调用而不是一次调用所有端点。我编写了一个简单的 RxJs 流,我在其中调用第一个端点,如果它不返回数
我有一个表单,其中有一个按钮,可以使用表单的内容发送电子邮件。我想使用 switchmap,因为我想防止用户垃圾点击并创建大量 HTTP 请求,但我不知道该怎么做。 使用 switchmap 之前:
我正在尝试使用 switchMap 运算符切换可观察值: return this.db.list(`UserPlaces/${this.authData.auth.auth.currentUser.u
我尝试执行以下搜索: 我想根据第一个 id 搜索某些内容,这会返回一个 FirebaseListObservable。然后我尝试在 Observable 的 switchMap 函数中执行代码,因为搜
Observable .interval(2, TimeUnit.SECONDS) .switchMap(integer -> Observable
我遵循了教程 Angular Tour of Heroes 和其他一些教程,现在我正在尝试使用 Angular 2 构建应用程序。基本上,当我们正在监听 Subject 的变化时,我们可以等待几秒钟,
我有一个 Angular 应用程序,它向 Http 服务发出请求并在另一个 Http 服务上调用 switchMap。由于某种原因,switchMap 中的请求仅在第一次调用父调用时运行。否则父请求会
Angular 和 RxJS 的新手,试图稍微了解一下...我的应用程序对 UI 事件使用react,结果调用返回 Observable 的 HTTP 服务。我这样订阅: this.myXYZServ
我想解析一个 observable,但我不希望返回值替换管道中的先前值。有没有异步tap() ?我需要一个像 switchMap 这样的运算符(operator)但我想忽略返回。 of(1).pipe
我有一个 Observable,其中每个新值都应该引起一个 HTTP 请求。在客户端,我只关心最新的响应值;但是,我希望每个请求都能完成以进行监控/等。目的。 我目前拥有的是这样的: function
我有 HTTP 拦截器。在那个拦截器中,在我更改请求之前,我需要打开一个加载程序。 真正让我担心的是,我最终有很多 switchMap s。 为什么? 加载器是异步的 我还需要翻译从拦截器传递到加载器
这个问题已经有答案了: Angular 7 - nesting Observables (1 个回答) 已关闭 4 年前。 我正在尝试按照 Angular Routing 中有关如何获取路由参数的教程
我在使用 ngrx.store 和 states 时遇到了错误(?)。 在我调度新状态并且 reducer 返回新状态之后什么都没有发生。订阅不会收到任何错误消息。如果我删除 switchMap,代码
目前我有这段代码 this.save() .pipe(switchMap(() => this.unlock())) .subscribe(...); save 和unlock 实现是 pri
如果满足条件,我将尝试从 switchmap 返回一个值,但它返回的是拆分为单个字符的 console.log。因此,如果 Angular 色以 Buyer 身份返回,则它以 身份返回 console
我是一名优秀的程序员,十分优秀!