我试图将获取函数放入分离的文件中,因此我可以轻松地组织这些API。但是,当我尝试获取数据并返回数据时,它会给我零或意外的JSON对象。这是我的SRC的一部分:
//api.js
export async function LoginAPI(username, password) {
const url = baseURL + "/login/";
var params = {username: username, password: md5.hex_md5(password)};
let response = await fetch(url, {
method: 'POST',
headers: {'Accept': 'application/json','Content-Type': 'application/x-www-form-urlencoded'},
body: JSON.stringify(params)
});
return await fetch(url, {
method: 'POST',
headers: header,
body: JSON.stringify(params)
})
.then((res) => res.text())
.then((text) => text.length ? JSON.parse(text) : {})
.catch((error) => {
throw error;
});
};
这是另一个文件。
//index.js
var Login = React.createClass({
onPress_login: function() {
var value = this.refs.form.getValue();
if (value) {
result = LoginAPI(value.username, value.password);
console.log(result);
} else {
this.AlertDialog.openDialog();
}
},
render() {
return (
(...)
<Button onPress={this.onPress_login}>
<Text>Login</Text>
</Button>
提取正在工作,它正在与服务器进行通信。但是,控制台日志首先将我返回
Promise _45: 0_54: null _65: null _81: 1 __proto__: Object
我假设result
首先在控制台中登录不是等待结果(服务器的实际响应,而是提取响应的对象)。我试图在线搜索方法,但找不到任何帖子/博客/文章,说如何在函数调用中进行获取。
有什么方法可以像swift一样, LoginAPI(username, password, callback: {...})
?
问题是您正在制作异步功能而不是等待响应,您会看到这种控制台日志。
尝试以下操作:
result = await LoginAPI(value.username, value.password);
让我知道这是否是您的问题。