gpt4 book ai didi

angular - 如何在 Angular 2 中调用没有 observable 的 http 方法

转载 作者:行者123 更新时间:2023-12-04 00:06:56 25 4
gpt4 key购买 nike

当我调用这个函数时,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());
}

编辑:我改为使用这个。这是处理这个问题的正确方法吗?

import 'rxjs/add/operator/toPromise';
...
return this.http.delete(this.url + 'Companies/' + id + '?' + this.token).toPromise();

最佳答案

正如@Gunter 指出的,如果你想使用 observable,你需要调用 subscribe。如果你想返回一些东西(因为 promise 不是惰性的),你可以将 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();
}

为了使用它,请在您的组件中使用 then 而不是 subscribe。例如:

this._yourServiceName.deleteCompany(this._id).then((data)=> console.log(data), (err) => console.log("error occured", err););

关于angular - 如何在 Angular 2 中调用没有 observable 的 http 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781162/

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