Angular 4 - HTTP删除不起作用
问题描述:
我正在尝试创建平均粗碎操作。我使用删除http方法的节点中有一个api,如localhost:3000/api/user?id=<some document id>
。下面是角码我用:正在打印Angular 4 - HTTP删除不起作用
deleteUser(user) {
console.log("user to delete:" + user._id);
let myParams = new URLSearchParams();
myParams.append('id', user._id);
return this.http.delete('/api/user', { search: myParams })
.map(res => res.json());
}
正确的ID安慰,但我无法看到在Chrome网络酒吧正在取得甚至电话也没有被删除的数据。任何想法出了什么问题?
答
如果您希望执行呼叫,您必须订阅呼叫。请参阅HttpClient documentation。
请注意subscribe()方法。从HttpClient返回的所有观察对象都很冷,也就是说它们是提出请求的蓝图。除非您致电subscribe(),否则任何事情都不会发生,并且每个此类呼叫都会发出单独的请求。例如,该代码发送具有相同数据POST请求两次:
实施例:
otherMethod(){
this.userService.deleteUser(user).subscribe(() => console.log("user deleted"));
}
答
如果要调用的组件内该方法中,使用.subscribe()
this.Service.deleteUser(myUser).subscribe((res: any) => {
}, error => this.errorMessage = error);
getAllUsers(){this.get('/ api/users') .map(res => res.json()); }'如何在没有订阅的情况下返回数据? – JackSlayer94
@ JackSlayer94 - 它不会*但*你可能使用模板中的异步管道(它将调用订阅)或其他最终调用订阅它的结果observable。 – Igor
很好,谢谢! – JackSlayer94