javascript - 检查空对象并返回布尔值
问题描述
我有一个AddContactForm
允许用户添加的表单contacts
。
当用户填写conactNumber
-onBlur
它检查这是否conactNumber
已经存在。
我怎样才能让CheckIfContactExists
函数返回true
或者false
而不是promise对象?
请注意,我无法更改 api 的返回值,它只返回一个contact
对象。
export default class AddContactForm extends Component {
state = {
...
};
checkContact = () => {
const { contactNumber } = this.state.newContactInfo;
CheckIfContactExists(contactNumber); //return promise
};
render() {
...
return (
...
);
}
}
const CheckIfContactExists = async searchString => {
const { data: contactsInfo } = await axios.get(`api/Contacts/SearchContact?contactNum=${searchString}`);
};
解决方案
在 checkContact 中使用 async await 就像你对CheckIfContactExists
. CheckIfContactExits
还从方法返回布尔结果
export default class AddContactForm extends Component {
state = {
...
};
checkContact = async () => {
const { contactNumber } = this.state.newContactInfo;
try {
const res = await CheckIfContactExists(contactNumber);
return res;
} catch (e) {
console.log('Error', error);
}
};
render() {
...
return (
...
);
}
}
const CheckIfContactExists = async searchString => {
const { data: contactsInfo } = await axios.get(`api/Contacts/SearchContact?contactNum=${searchString}`);
if (Object.keys(contactsInfo).length > 0) {
return true;
} else {
return false;
}
};
推荐阅读
- javascript - D3 - 具有正值和负值的图表
- c++ - 可以改善我的字符串拆分功能的建议
- c++ - C++ 函数已经有一个主体
- python - 如何使用 Docker 从 Github 运行这个特定的程序?
- php - Symfony Panther && Docker (Alpine) chrome 不断崩溃
- php - 可以将 2 种不同类型的参数传递给 Laravel 控制器吗?
- openacc - OpenACC 第一个私有变量
- java - Spring Batch @JobScope bean 创建错误“已定义具有该名称的 bean”
- ios - 在导航栏中的文本字段上方放置标签
- c# - Blazor 服务器组件未在 ASP.NET MVC 应用程序上呈现