angular - 从 http Post 返回 Observable
问题描述
我正在开发一个示例应用程序,其中有一个登录组件,它调用身份验证服务。服务轮流进行 Http 调用,根据调用的响应,我需要做一些事情。
在服务中,当我的用户能够登录时,我使用 http Post 和 subscribe 来做一些事情,但是,我希望我的组件函数从我的操作中消耗这个响应并相应地继续。
下面是代码: 登录组件:
this.authService.login(this.userName, this.password)
认证服务
return this.http.post('http://localhost:8080/login',{
"username": userName,
"password": password
}).subscribe(data => {
//some stuff
return true;
}, () => return false;
})
我希望我的 LoginComponent 等到它从服务接收到 true 或 false。
一种方法是将http调用返回给组件并在那里编写整个逻辑,但这不是我所期待的。我希望是否有更好的方法来做到这一点。
解决方案
你可以写
import { Observable } from 'rxjs/internal/Observable';
和
return new Observable((subscriber) => {
this.http.post('http://localhost:8080/login', {
userName,
password,
}).subscribe(data => {
//some stuff
subscriber.next(true);
}, () => subscriber.error();
});
推荐阅读
- google-sheets - 展开/展开包含工单打开和关闭统计信息的 Google 表格表格,以显示每个月打开的所有工单
- python - Python如何发送电子邮件而不会出现此错误
- c++ - '\0' 和 string.length() 之间的关系有问题
- r - 将相同的字符串插入到单列的多行中
- python - Boto3,AWS Lambda - 结果复合每次调用
- selenium - CURL Selenium 命令不返回会话 ID
- ios - Swift 如何获取项目管理器内文件夹中的音频文件数
- python-3.x - TensorFlow、python、google colab、google drive
- c# - MVC 多层应用程序时无法在 Audit.Net 中配置 SqlDataProvider
- python - Python Pandas - 通过列表删除多列