我是新来的,因为缺乏信息而道歉。
我有基于Promise的函数,它返回一个对象。然后,我从该属性传递一个键值,以便创建另一个对象。
我遇到了一个问题,我正在创建的新对象返回undefined。我认为这是由于JS的异步性质?
请参阅下文..
post(postObject).then((result) => {
console.log(result); // token found in returned object. See OBJ1 below
const cookie = {
name: 'jwtToken',
value: result.token,
path: '/',
domain: '.' + APP_HOST,
secure: false
};
console.log(cookie); // result.token not returned. Getting undefined
page.addCookie(cookie);
});
cookie.value将以未定义的方式返回
我需要能够将result.token作为cookie值传递。
当我控制日志结果时,我可以看到生成的令牌键值。
以下是从'结果'返回的内容。我想抓住“令牌”#39;所以我在做result.token。但是这给了我“未定义的”#39;每时每刻。
OBJ1:
{"token":"skjdhjkshds.sdhskjdhkshdjs.shdkjshdkjsh","isCartMerged":false}
答案 0 :(得分:0)
您的result
似乎是一个JSON字符串,您需要对其进行解析才能将各个属性作为对象获取。您可以通过在console.log(typeof result)
处理程序的开头插入.then()
来确认这是否是字符串或对象。
post(postObject).then((result) => {
console.log(typeof result); // probably shows "string"
console.log(result);
var parsedResult = JSON.parse(result);
console.log(parsedResult);
const cookie = {
name: 'jwtToken',
value: parsedResult.token,
path: '/',
domain: '.' + APP_HOST,
secure: false
};
console.log(cookie);
page.addCookie(cookie);
});