Я использую Axios, чтобы совершать HTTPS-вызовы в Twitter API и возвращать токены и твиты:
TwitterScreen.js:
export default class TwitterLogin extends React.Component {
async componentDidMount(){
await init("<CUSTOMER KEY>", "<CUSTOMER SECRET KEY>");
this.twitter = await getToken();
alert(this.twitter);
}
render() {
return(
<View style= {styles.container}>
<Button
title="Twitter Login Button" onPress={this.twitter)}
/>
</View>
)
}
}
AxiosUtility.js:
export function init(cuskey, seckey){
axios.defaults.baseURL = 'https://api.twitter.com';
//TODO: RFC 1738 this.
axios.defaults.headers.common['Authorization'] = 'Basic ' + btoa(cuskey + ':' + seckey);
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.headers.post['Accept-Encoding'] = 'gzip';
}
export function getToken(){
axios.post('/oauth2/token', 'grant_type=client_credentials', {
'User-Agent' : 'whereabouts dev',
Accept: '*/*',
})
.then((response) => {
console.log(response.data);
return (response.data);
})
.catch((error) =>{
console.log(error)
}
)
}
При запуске console.log (response.data) возвращается успешное сообщение. Но он запускается после того, как предупреждающее сообщение отправлено приложению, а это означает, что в сообщении указано «Не определено». Я следовал за документацией безрезультатно.
Я также получаю предупреждение «ожидание не влияет на тип этого выражения». Как правильно использовать await и async, чтобы предупреждение вызывалось после вызова twitter?