angular - 使用订阅处理 HTTP 请求
问题描述
我有一个提供者使用call()
我用于http.post()
请求的方法。我的目标是call()
在检查对象是否包含permission_deny
或error
已经在call()
. 同样,如果没有连接到服务器,应该已经在方法内部处理了call()
。当 JSON 通过上述任何检查时,我只想返回组件。但我不知道,我该如何处理。这是我当前的状态,但我知道这不能.subscribe()
在组件中使用。
任何组件
buttonTest(){
let params = new URLSearchParams();
this.dataService.call('clasABC, 'methodABC', params).subscribe((data) => {
// Handle data
});
}
提供者
public call(class, method, params: URLSearchParams) {
params.set('c', class);
params.set('m', method);
this.http.post(/* URI CALL */)
.subscribe((data)=> {
try {
var jsonDataObject = JSON.parse(data.text());
if (jsonDataObject.hasOwnProperty('permission_deny'))
{
// Show alert
return null;
} else if (jsonDataObject.hasOwnProperty('error'))
{
// Show alert
return null;
}
return jsonDataObject;
} catch (e)
{
console.log(e);
}
}, (error) => {
// Alert
})
}
解决方案
推荐阅读
- java - 如何转换列表
- django - 未找到“{props.url}”的 NoReverseMatch.Reverse。尝试在 django 中创建一个名称为动态值的链接
- windows - 无法在 Windows 上打开具有多接口 USB 设备的设备
- mysql - 如何限制普通用户创建和更新书籍?
- c++ - #include < > 如何访问库?
- c++ - 使用 C++ 读取具有多列的文本文件
- python - 无法使用网格搜索检索 bestModel
- c# - 从文本文件中提取特定字符串
- flutter - 如何遍历列表以填充 Flutter 和 Dart 中的表格?
- c++ - 将元素插入数组排序顺序