Estoy intentando obtener una parte de un valor de una cookie en un sitio web. Así que escribí un código para obtener el valor de la cookie, eso funciona bien. E intenté hacer un JSON.stringify() del valor devuelto en una cadena, pero en su lugar lo convierte en un objeto vacío. Sospecho que esto se debe a que el objeto devuelto es un objeto Promise, pero no sé por qué eso marcaría la diferencia. Esto es lo que he hecho hasta ahora.
const getCookie = async (name) => { const cookie = await cookieStore.get(name); if(cookie) {return cookie.value} else {console.log('cookie not found')} } const cookievalue = getCookie('foo');Y esto devuelve:
Promise {<fulfilled>: 'locale%3Des_us'}Que es, de hecho, el valor de la cookie que quiero. Pero si luego ejecuto:
const newcookievalue = JSON.stringify(cookievalue);Yo obtengo:
'[object Promise]'Lo que estoy tratando de hacer, por cierto, es ejecutar una declaración IF en ese valor: si es "es_us", haz una cosa, si es "en_us", haz otra cosa. Entonces, por ahora, la instrucción IF en getCookie realmente solo está probando en la consola que puedo obtener y convertir el valor en una cadena, antes de colocar el código en mi aplicación.
Para obtener un valor de una función async , debe usar la palabra clave await . como esto:
const cookievalue = await getCookie('foo');