在我正在开发的应用程序中,我正在使用NgBlockUI和BlockUIHttpModule,其中blockAllRequestsInProgress设置为true。通常情况下,它运行良好,但在一个页面上,我使用concat映射来执行一些操作,然后更新数据。第一个请求,更新,触发BlockUI很好,但第二个没有。否则,它将正确执行。这对用户来说只是有点刺耳,因为结果似乎在没有警告的情况下更新。这是函数的代码:
onUpdate(event: items[]) {
this.updateService.update(event).concatMap(
_ => this.seachService.search(this.cachedSearch)
).subscribe(
resp => this.handleResponse(resp),
err => this.handleError(err)
);
}
我试着直接调用BlockUI,但仍然没有成功。作为最后的手段,我将把整个事情作为一个请求,但我至少想明白为什么这不起作用。
这也发生在我身上。这个问题发生在连续的HTTP调用(通常带有等待(中,其中第二个请求没有被ng块ui阻止。
作为修复,我所做的是将blockAllRequestsInProgress
设置为false
。行为是一样的,但设置为false会产生更可预测的结果:
BlockUIHttpModule.forRoot({
blockAllRequestsInProgress: false,
requestFilters: [urlFilter]
}),
我还将ng块ui更新到了撰写本文时的最新版本:
"ng-block-ui": "^2.1.8",