javascript - 如何基于响应对象创建条件,其键值依赖并避免 object.key() 未定义
问题描述
我正在使用 typescript 订阅 Angular 中的一个方法,这是一个简单的 post Call,它返回一个完整的 HTTP 响应。我想创建一个简单的条件来检查 HTTP 响应中是否存在某个键。条件将适用于包含键的对象,但对于不包含键的对象,它会抛出未定义的。
有没有办法忽略抛出的错误或异常并继续到 else 部分
如果用户包含一个数字,则添加对象主体的键,否则它不存在 PhoneNumber 键值
我尝试过/翻转了 if 和 else
- != 未定义(反之亦然)
- == null(反之亦然)
this.postMyName(userInfo).subscribe(
(result:Response) => {
if (result['body']['user'].hasOwnProperty(['PhoneNumber'])) {
console.log("User has included a phoneNumber");
} else {
console.log("User has Not included a phoneNumber");
}
},error ...)
解决方案
您也可以尝试此解决方案,也许它会起作用
this.postMyName(userInfo).subscribe(
(result:Response) => {
if ('PhoneNumber' in result['body']['user'])) {
console.log("User has included a phoneNumber");
} else {
console.log("User has Not included a phoneNumber");
}
},error ...)
推荐阅读
- r - 如何将两行改写为一行?
- typescript - 如何扩展模型类而不在构造函数中传递数据?
- python - 如何使用 Python 添加新行并将其填充到现有的 excel 文件中
- redux - redux 状态和页面刷新
- ruby-on-rails - 如何或最佳方式运行 while 循环以避免 API 限制
- python - del后的Python内存泄漏
- oracle - Oracle - 删除有条件的记录
- maven - 配置 Maven pom 以访问 Vaadin 14 alpha/beta 预发行版
- java - 如何在 JAXB 适配器中使用属性作为键和整个元素作为值将复杂元素解析为 Map
- flutter - Flutter 升级后出现 Flutter Cloud Firestore 错误