【发布时间】:2017-03-21 06:52:21
【问题描述】:
我有一个 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 的结果而无需像上面那样多次订阅,或者这是检索数据的唯一方法?
【问题讨论】:
-
所以您只想在所有
this._accountsService.removeFromClientLibrary调用完成后收到通知?
标签: angular typescript rxjs observable