javascript - 如何使用axis.get到Api Gateway检查用户是否存在于数据库中?
问题描述
我正在尝试编写当我单击登录时检查用户名是否存在于数据库中的代码。
有没有办法编写一个包含 axios.get(URL).then() 的函数,这样它会给我一个布尔结果?如果用户名存在则为真,否则为假。
import axios from 'axios'
function validateUser(username) {
URL: API_GATEWAY_URL
isExist = true;
axios.get(url + '?username=' + username)
.then(response => {
return response.json})
.then(json => {
if(json.data.statusCode != 200)
{
isExist = false;
}
})
.catch(error => console.error(error))
return isExist;
}
但是,无论 (json.data.statusCode != 200) 是否为真,isExist 似乎都不会发生变异。请帮忙,我是 JavaScript 新手。
解决方案
发生这种情况是因为axios.get
返回Promise
异步工作。所以你isExist
没有变异。validateUser
此外,无论何时需要控制状态,您都应该将 promise 从to 返回。
你也可以使用async/await
.
编辑:(以某种反应/伪代码方式的最小实现)
// api.js
import axios from 'axios'
function validateUser(username) {
return axios.get(url + '?username=' + username)
}
// main.js
import api from 'api'
onUserKeypress(username) {
api.validateUser(username)
.then(({json}) => {
if(json.data.statusCode != 200) {
this.form.valid = false;
this.showError(username)};
})
}
推荐阅读
- mongodb - spring boot 反应式 mongo 健康检查不显示(反应式 mongo)
- mobile - Ionic 2/3 中的动态标签栏
- json - 如何让 yason:encode-alist 返回编码字符串而不是将其发送到流?
- python - plt.colorbar 在绘图之间的刻度不相等
- bash - Bash awk 单行不打印
- java - 迭代器不工作
- java - 将字符串解析为变量
- asp.net-mvc - 是否有使用 Imageresizer 设置 CloudFront 的详细指南?
- javaparser - 如何使用 JavaParser 向解析文件添加新方法?
- groovy - 如何在groovy中将java.lang.String转换为json