[英]React Native - Promise returns undefined
I have a js file that returns whether I have internet connection or not, and then in another js I have an if else statement that gets that value.我有一个 js 文件,它返回我是否有互联网连接,然后在另一个 js 中我有一个 if else 语句来获取该值。 The thing is im getting connection = undefined.事情是我得到连接 = 未定义。
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
}
Your isConnected function is not a promise.您的 isConnected 功能不是承诺。 If you wish to use async/await, isConnected must be a promise.如果你想使用 async/await,isConnected 必须是一个 promise。
Try this:尝试这个:
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)
})
})
}
try this instead试试这个
export const isConnected = async function () {
var networkState = await NetInfo.fetch()
return networkState.isConnected
}
I am not 100% sure on this, but it could be as simple as我对此不是 100% 确定,但它可能很简单
const isConnected = function() { return NetInfo.fetch().then(state => { console.log("state.isConnected: ", state.isConnected) return state.isConnected }); }
Because you didn't return anything in isConnected function.因为您没有在 isConnected 函数中返回任何内容。 let's try this code:让我们试试这个代码:
const isConnected = async function() {
const { isConnected } = await NetInfo.fetch()
return isConnected;
}
async checking(){
var connection = await isConnected()
return Boolean(connection)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.