angular - 如何使用 Angular 发送 HTTP 请求并取回 json 数据
问题描述
当用户单击“获取 HTTP 数据”按钮时,调用服务的方法中getData()
定义的方法应该返回数据。但相反,它返回对象:app.component
http
getData()
json
ZoneAwarePromise
export class HttpService {
jsonFile = '../assets/products.json';
getData(): Promise<any> {
return this.http.get(this.jsonFile)
.toPromise()
.then(response => {
console.log(">>> .then got response:", response);
})
.catch(this.handleError);
}
这是 Stackblitz 项目的链接:
https://stackblitz.com/edit/angular-ivy-ukgwct?file=src%2Fapp%2Fhttp.service.ts
如何解决此问题并使 http 服务返回 json 数据?
解决方案
我在 stackblitz 链接中解决了这个问题。- https://stackblitz.com/edit/angular-ivy-qmq58v?file=src%2Fapp%2Fapp.component.ts
问题是,在服务中,您没有订阅可观察对象或在创建期间使用 then 或 cathErrors 收听承诺(这是您的情况)
相反,您应该订阅要注入它的组件中的服务。
推荐阅读
- javascript - 如何使用 javascript 和 python 将图像保存到服务器
- jquery - 单击按钮时图像未替换
- android - Android横向模式下的渲染问题
- java - Admob 横幅未显示,但显示了测试 ID
- jquery - 带动画的动态高度和所有元素垂直居中对齐
- javascript - 带有参数的 VueJS 推送路由在浏览器中显示旧参数
- javascript - 在 Cypress 中的哪里存储 API URL?
- python - 大熊猫的 read_csv 错误地解析了日期时间
- php - PHP 多标准/高级搜索(绝对假人)
- java - 在具有正确文件路径和权限的 android 中找不到文件异常