gpt4 book ai didi

angular - 当 ngrx/data 进行远程 api 调用时,如何避免 net::ERR_INSUFFICIENT_RESOURCES?

转载 作者:行者123 更新时间:2023-12-03 23:42:45 29 4
gpt4 key购买 nike

我正在更新@ngrx/data 下的很多记录,它在后台调用远程API 来同步数据库和本地存储。

  dataList.forEach((entity) => {
const p = this.entitySvc
.getEntityCollectionService(storeName)
.upsert(entity)
.toPromise();
promises.push(p);
});
return Promise.all(promises);
我遇到的问题是远程 API 调用发生在我的代码之外,而且它发生得如此之快,连接使浏览器不堪重负:
net::ERR_INSUFFICIENT_RESOURCES
限制上面的代码无济于事,因为远程 API 调用发生在我无法控制的范围内。
我有办法限制 ngrx/data 远程 API 调用,还是其他方法来解决这个问题?

最佳答案

我将使用 mergeMap rxjs 运算符来添加服务器请求之间的并发性:

updateEntities(): Observable<any> {
return from(dataList).pipe(
mergeMap(entity => this.entitySvc
.getEntityCollectionService(storeName)
.upsert(entity), 2)
);
}
然后在需要时调用该函数:
this.updateEntities().subscribe();
请注意 mergeMap 的并发参数值为 2 ,这意味着只会发送 2 个请求 并行 ,防止同时对服务器进行多次调用。您可以根据需要调整此数字。
PS:请记住,当您在 Observable 上调用 toPromise() 时,它将立即执行。

关于angular - 当 ngrx/data 进行远程 api 调用时,如何避免 net::ERR_INSUFFICIENT_RESOURCES?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64794901/

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