No estoy seguro de cómo acceder a la fecha de los valores y los precios en otro lugar del script
fetch("fileName") .then(response => response.json()) .then(data => { var date = data.JSONdata[data.JSONdata.length - 1].date var prices = data.JSONdata[data.JSONdata.length - 1].prices })Simplemente puede reescribir su código para usar async/await :
const response = await fetch("fileName"); const data = await response.json(); const date = data.JSONdata[data.JSONdata.length - 1].date; const prices = data.JSONdata[data.JSONdata.length - 1].prices;EDITAR: para usar este código asíncrono, debe definir la función en la que usa este código como asíncrono:
async function yourFunction() { // your async code from above } // await async function where it's called const functionResult = await yourFunction();Tienes que sincronizar cada función en tu pila de llamadas hasta el nivel en el que ya no te importa la respuesta. Entonces, la función que llama a "yourFunction()" también debe ser asíncrona. Y así.
Puede usar esperar para obtener el resultado de Promesa. Consulte los documentos de MDN
En el ejemplo dado, la fecha y los precios están codificados y se obtendrán a través de llamadas API en un escenario real.
const date = Date.now(); const prices = [1000, 2000]; const resolvedProm = Promise.resolve({date, prices}); let thenProm = resolvedProm.then(({date, prices}) => { return {date, prices}; }); let res = await thenProm; console.log(res); // {date: 1641136463085, prices: Array(2)}