config.js
AsyncStorage.getItem("storedValue").then(value=>{ //return data based on the value from asyncStorage storage if(value==="value1"){ return { text:"text1", number:"number1" } } else if(value==="value2"){ return { text:"text2", number:"number2" } } })índice.js
import config from "./config" //I have to use data from config file here console.log(config.text) //->getting error //The problem is that, since fetching from AsyncStorage is asynchronous, data from config is not yet available here //I have tried SyncStorage npm package for react native. It loads all the asyncStored values into memory upon calling await SyncStorage.init() //-> called on app initialisation //And can be used later in place of AsyncStorage.getItem(""), which returns the value directly instead of promise const value=SyncStorage.get("storedValue")Pero el problema es que estoy accediendo a la configuración en index.js (que es el archivo de inicio para un proyecto nativo de reacción). Y tengo que inicializar SyncStorage aquí, que nuevamente es asíncrono, lo que significa que el archivo de configuración se cargará antes de que ocurra init().
Lo que estoy esperando es:
ORORCambios que no son posibles:
Gracias.
Por favor explique un poco más...
Resumiendo lo que entiendo de tu pregunta:
Tratando de desenredar eso aquí mi respuesta:
no es realmente una buena práctica poner mucho código en app.js o index.js, así que trataría de evitar eso tanto como sea posible
El almacenamiento sincronizado y el redux normalmente solo están disponibles en tiempo de ejecución y, a menudo, se cargan desde el almacenamiento asíncrono.
el almacenamiento asíncrono necesita tiempo y, por lo tanto, también debe cargarse con una apariencia de promesa o espera de captura
--> Si yo fuera usted, usaría el almacenamiento asíncrono como de costumbre con await e introduciría algún tipo de pantalla de inicio donde realiza la carga.