我有一个Angular (9)前端,带有nestjs后端rest api (在nodejs中),我在后端调用的端点执行一些相当复杂的操作,大约需要2分钟来响应。在前端,我使用subscribe来订阅响应,如下所示:
this.metaService.subscribe(
result => {
//Handle result
},
error => {
this.subscription.unsubscribe();
console.error('Error: ' + error);
},
() => {
this.subscription.unsubscribe();
console.error('Completed');
});问题是在后端,它开始一遍又一遍地执行代码。请注意,它不会再次执行http调用(我可以从开发人员工具中的网络选项卡中看到这一点),它一直处于挂起状态)。如果我执行了,似乎这是可行的。
.pipe(take(1)).subscribe(然后,它不会在后端执行循环,但它会立即完成订阅(并且http在网络选项卡中处于已取消状态)我正在我的本地主机上的windows机器(linux子系统)上运行此程序。节点版本为12.14.1
有没有人知道是什么导致了这个问题,以及如何修复它?
-Jani
发布于 2020-03-09 00:26:38
这不是答案:我想我能够解决这个问题。我在一个for循环中使用了几个静态异步方法,这似乎导致了这个问题。我现在真的不知道为什么,但当我删除方法并将它们转换为非静态异步方法(仍在for循环中)时,我不再遇到这个问题。我不确定为什么它们一开始就是静电的……
https://stackoverflow.com/questions/60418011
复制相似问题