javascript - React Native - 承诺返回未定义
问题描述
我有一个 js 文件,它返回我是否有互联网连接,然后在另一个 js 中,我有一个 if else 语句来获取该值。事情是我得到连接=未定义。
import React from 'react';
import NetInfo from "@react-native-community/netinfo";
const isConnected = function() {
NetInfo.fetch().then(state => {
console.log("state.isConnected: ", state.isConnected)
return state.isConnected
});
}
export default isConnected;
import isConnected from '../../src/utils/internetConnection';
async checking(){
var connection = await isConnected()
console.log("connection : ", connection)
if (connection){
return true
}
Alert.alert("There is no Internet connection")
return
}
解决方案
您的 isConnected 函数不是一个承诺。如果你想使用 async/await,isConnected 必须是一个 promise。
尝试这个:
const isConnected = function() {
return new Promise((resolve, reject) => {
NetInfo.fetch().then(state => {
console.log("state.isConnected: ", state.isConnected)
resolve(state.isConnected);
})
.catch(err => {
reject(err)
})
})
}
推荐阅读
- html - 如何使用 Git 组织 Web 开发
- javascript - 在单击其他组件中的按钮之前,React 组件中的逻辑不起作用
- python - 将一行从 C 翻译成 Python
- python - 将 CURL 发布请求转换为 python 请求
- python - 如何使用 tox 运行一项特定测试?
- javascript - 如何可靠地选择焦点输入字段中的所有文本?
- c++ - 你如何发现或避免一次次犯错?
- hadoop - 失败:执行错误,返回代码 2. Hive on apache ubuntu
- c++ - 如何在 C++ 中订购具有重复值的地图?
- python - 即使类型正确,Flask NoneType 错误也会随机出现,有时它会随机出现