将值从 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');
我正在尝试从网站上的 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');