Tengo que hacer varias llamadas a una API para obtener los datos predeterminados que se utilizan en todo el sitio (los datos son independientes entre sí, sin restricciones clave). Estoy intentando crear una función que devuelva un objeto con todos los datos devueltos de las distintas llamadas. La API aprovecha un Django Restframework.
Estaba buscando datos para estar en este formato:
defaultValues ={ sysLvlList: {}, phaseList: {}, programList:{} missionList:{} }Luego poder acceder a los datos a través de la notación de puntos, defaultValues.sysLvlList, etc. Lo que terminé haciendo fue:
let defaultValues = {}; async function getSystemLevel_phase(){ const sysLvl = get("/api/SystemLevelList_url/").then(r=>defaultValues.sysLvlList = r).catch(err=>showErrorAlert(err)); const phase = get("/api/mmSelectorPhase_url/").then(r=>defaultValues.phaseList = r).catch(err=>showErrorAlert(err)); const program = get("/api/ProgramList_url/").then(r=>defaultValues.programList = r).catch(err=>showErrorAlert(err)); const mission = get("/api/MissionList_url/").then(r=>defaultValues.missionList = r).catch(err=>showErrorAlert(err)); await Promise.all([sysLvl,phase,program,mission]); } getSystemLevel_phase(); console.log(defaultValues); console.log(defaultValues.sysLvlList);Que se registró sin identificar al intentar usar la notación de puntos (vea la imagen a continuación como referencia). Cuando trabajaba en la consola del navegador, accedía a los datos. Creo que la promesa se está cumpliendo después de que se muestre el sitio.
Idealmente, preferiría no tener que definir la variable fuera de la función, sino establecer la función en una variable como: const defaultValue = getSystemLevel_phase()
Cualquier ayuda sería apreciada, gracias