我正在尝试将JSON对象放入变量中,以显示人们必须在字符串中的facebook聊天机器人中等待的时间。我尝试了各种方法,并尝试了我在堆栈溢出或博客文章中发现的所有其他方法,但它只是不断返回undefined。
var waitingTime = request.post(
"https://mypage.com/data/data/responsetime",
{
form: {
'key': 'value'
}
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
JSON.parse(body.responsetime)
console.log(response)
}
}
);
答案 0 :(得分:0)
我不知道你是否真的写了JSON.parse(body.responetime)
而不是JSON.parse(body.responsetime)
(你拼写错误responsetime
),但它可能导致你undefined
问题! PS:我编辑你的帖子认为这是一个错误(我希望它是:P)。
即使这不是问题,我认为你的代码几乎是正确的。但您必须了解request
的工作原理以及回调的工作原理。当您使用request.post()
时,您正在进行异步调用,这意味着如果您想要结果,则必须等待进程结束。这就是为什么你将函数作为request.post(address, data, callback)
的第三个参数。
接下来,如果您要初始化var waitingTime
,则必须在回调中初始化它:
var waitingTime = null;
request.post(
"https://mypage.com/data/data/responsetime",
{
form: {
'key': 'value'
}
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
waitingTime = JSON.parse(body.responsetime);
// Now you can use the waitingTime variable.
}
}
);