将值从 promise 转换为字符串(cookieStore.get 个问题)

Convert value from promise to string (cookieStore.get question)

我正在尝试从网站上的 cookie 中获取部分值。所以我编写了代码来获取 cookie 值,效果很好。我试图将返回值的 JSON.stringify() 转换为字符串,但它会将其转换为空对象。我怀疑这是因为返回的对象是 Promise 对象,但我不知道为什么会有所不同。这是我到目前为止所做的。

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');

还有这个returns:

Promise {<fulfilled>: 'locale%3Des_us'}

这实际上是我想要的 cookie 值。但是如果我然后 运行:

const newcookievalue = JSON.stringify(cookievalue);

我得到:

'[object Promise]'

顺便说一句,我想做的是 运行 一个关于该值的 IF 语句——如果它是“es_us”,则做一件事,如果它是“en_us" 做另一件事。所以现在 getCookie 上的 IF 语句实际上只是在控制台中测试我可以获取并将值转换为字符串,然后再将代码放入我的应用程序。

要从 async 函数中获取值,您应该使用 await 关键字。像这样:

 const cookievalue = await getCookie('foo');