gpt4 book ai didi

Angular2 使用 rxjs 订阅发出多个请求

转载 作者:太空狗 更新时间:2023-10-29 19:30:18 25 4
gpt4 key购买 nike

我有一个 angular2 应用程序,它可以从多选框中添加或删除项目,并将每个项目单独发送到远程 api,以便添加到数据库中进行处理。以下方法将请求发送到服务器并获得作为可观察对象的响应

removeFromClientLibrary(username: string, roleID: string): Observable<any> {
let body = JSON.stringify({Key: username, Value: roleID});

return this._http.post(this._removeFromLibraryURL, body, this.emsConfig.getStandardHttpHeaders())
.map((res:Response) => <any>res.json());
}

然后我添加了一个客户端来使用它,通过使用订阅方法来使用它。我的理解是只需要调用一次订阅,但是,我似乎无法让它工作。唯一返回正确结果的是遍历每个项目并多次订阅:

for (let i = 0; i < selected.length; i++) {
this._accountsService.removeFromClientLibrary(this.username, selected[i].RoleID)
.subscribe(status => {
console.log(status);
});
}

有没有一种方法可以使用 rxjs 使用 api 的结果而无需像上面那样多次订阅,或者这是检索数据的唯一方法?

最佳答案

您可以使用 combineLatest operator .

Observable.combineLatest(
selected.map(selectedId =>
this._accountsService.removeFromClientLibrary(this.username, selected[i].RoleID)))
)
.subscribe((statusArray) => console.log('all done: ', statusArray));

关于Angular2 使用 rxjs 订阅发出多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40473477/

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