当我调用这个函数时,console.log()工作,但http.delete方法永远不会运行,我假设因为我还没有订阅observable.
因为我是通过表单上的按钮来调用它的,所以我不关心返回任何内容,所以有没有办法只是拨打电话?
deleteCompany(id) {
console.log('from data service: ', id);
this.http.delete(this.url + 'Companies/' + id + '?' + this.token).map(res => res.json());
}
Run Code Online (Sandbox Code Playgroud)
编辑: 我选择了这个.这是处理这个问题的正确方法吗?
import 'rxjs/add/operator/toPromise';
...
return this.http.delete(this.url + 'Companies/' + id + '?' + this.token).toPromise();
Run Code Online (Sandbox Code Playgroud)
正如@Gunter指出的那样,subscribe如果你想使用observable ,你需要调用.你可以转换observable为promise如果你想要返回的东西(因为承诺不是懒惰的)如下:
import 'rxjs/add/operator/toPromise';
deleteCompany(id) {
console.log('from data service: ', id);
return this.http.delete(this.url + 'Companies/' + id + '?' + this.token).toPromise();
}
Run Code Online (Sandbox Code Playgroud)
为了消耗它then而不是subscribe在组件中使用它.例如:
this._yourServiceName.deleteCompany(this._id).then((data)=> console.log(data), (err) => console.log("error occured", err););
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4845 次 |
| 最近记录: |