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")); 
} 
+0

getAllUsers(){this.get('/ api/users') .map(res => res.json()); }'如何在没有订阅的情况下返回数据? – JackSlayer94

+0

@ JackSlayer94 - 它不会*但*你可能使用模板中的异步管道(它将调用订阅)或其他最终调用订阅它的结果observable。 – Igor

+1

很好,谢谢! – JackSlayer94

如果要调用的组件内该方法中,使用.subscribe()

this.Service.deleteUser(myUser).subscribe((res: any) => { 
}, error => this.errorMessage = error);