【发布时间】:2019-08-05 15:21:50
【问题描述】:
我正在尝试从 Ionic4-Angular 前端向我的 Django API 发送请求,问题是我还没有熟悉这种技术甚至 javascript。 在下面的代码中,我试图返回订阅数据并将其分配给 const。
async getUserLogged() {
const tkn = await this.authService.getToken();
const user = await this.http
.post('http://localhost:8000/api/getuser/', {
token: tkn
})
.subscribe(response => {
console.log(response);
return response;
});
console.log(user);
return user;
}
第一个 console.log 包含我正在搜索的真实对象。 但是,第二个打印一个订阅者对象。 谁能解释一下这种行为以及如何解决它
【问题讨论】:
-
就是这样,你在订阅中访问响应。如果没有
.subscribe(),您将在没有真正执行它的情况下声明该管道。 -
这就是让流点击我的原因:gist.github.com/staltz/868e7e9bc2a7b8c1f754
-
我回答了一个类似的问题here。构建流时,仅在需要数据的最后订阅(通常在组件中)。在中间函数(例如 Angular 服务中的方法)中处理 Observable 时,只需使用运算符转换 Observable 数据,不要订阅这些函数中的 Observable。
标签: javascript angular ionic4