使用异步功能获取NetInfo

时间:2019-06-05 19:12:40

标签: react-native

我有一个名为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!。有帮助吗?

1 个答案:

答案 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);
    });
}