我有一个名为hasNetwork
的函数,我想返回网络连接状态。
我尝试使用以下代码并在组件获得焦点时调用函数:
constructor(props) {
super(props);
this.props.navigation.addListener('didFocus', () => {
let hasNetwork = this.hasNetwork();
console.log(hasNetwork); // Promise {_40: 0, _65: 0, _55: null, _72: null}
});
}
// ===========================================
// Functions
async hasNetwork() {
await NetInfo.isConnected.fetch().then(isConnected => {
if (isConnected) {
return true;
} else {
return false;
}
});
}
我希望函数返回true或false,但返回Promise!。有帮助吗?
答案 0 :(得分:0)
由于hasNetwork
也是async
,因此您也需要await
使用该函数。
要创建匿名函数async
,只需在参数前添加async
。
此外,由于Network.isConnected.fetch()
返回的诺言始终会返回一个true / false值,因此您可以直接使用它而无需使用then
。
constructor(props) {
super(props);
this.props.navigation.addListener('didFocus', async () => {
let hasNetwork = await Network.isConnected.fetch();
console.log(hasNetwork);
});
}