1
我想把抓取功能放到一個單獨的文件中,所以我可以輕鬆地組織這些API抓取。但是,當我嘗試獲取並返回數據時,它會給我null或一個意外的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
日誌在首位控制檯不是的await結果(從服務器的實際響應,但對象取響應)。我試圖在網上搜索方法,但我找不到任何文章/博客/文章說如何做一個函數調用獲取。
請問有什麼辦法可以像swift一樣,LoginAPI(username, password, callback: {...})
好嗎?
它打破了......它說導入錯誤的東西。 – DrKNa
哦,很好的提示!它以這種方式工作。 (){ 'onPress_login:async function if(value){0}結果=等待LoginAPI(value.username,value.password);' – DrKNa
正確!做得好 :) –