【发布时间】:2018-09-29 21:15:38
【问题描述】:
所以下面是我正在调用的函数:
function* makeRequest(payload) {
return new Promise(function(resolve) {
request(payload,
function (error, response, body) {
console.log('body', body);
console.log('body.success', body.success);
resolve(body);
});
});
}
console.log('body', body); 的输出如下:
{
"success": true,
"challenge_ts": "2018-09-29T21:09:13Z",
"hostname": "localhost"
}
所以body 显然确实包含一个应该可以访问的对象。但是,当尝试访问body.success 时,我得到的只是undefined...关于为什么会出现这种情况的任何想法?
【问题讨论】:
-
您是否忘记解析 json 字符串有效负载?记录一个对象将是“对象对象”或类似的。
-
为什么是生成器函数?
-
请
console.log(typeof body)(确认@spender的怀疑) -
@Bergi 是的,它是一个字符串而不是一个对象......这很奇怪。我想我会只是 JSON.parse(body) 呢?
-
@Mason0958 如果你不喜欢用
.then()链接promise,你应该使用async/await。不是生成器。
标签: javascript json node.js request es6-promise