【发布时间】:2019-09-19 18:29:11
【问题描述】:
嘿,令人惊叹的互联网人, 这里的问题很愚蠢,但是我写的一些 Javascript 有点问题。这是代码-
const req0 = http.request({
hostname: `api.trello.com`,
port: 443,
path: `/1/lists/5cb77e9ef180dd2bbb25acf2/cards?key=${trelloKey}&token=${trelloToken}&fields=name`,
method: `GET`
}, res => {
let str = '';
res.on('data', chunk => {
str += chunk;
});
res.on('end', () => {
try {
var level0Data = JSON.parse(str);
console.log(`Level 0: ${level0Data}`)
level0Data.forEach((k,v) => {
var id = k.id;
var name = k.name;
console.log(`${id} = ${name}`);
});
} catch(error) {
console.log(error);
}
});
});
req0.on('error', error => {
console.log(error);
});
req0.end();
level0Data.forEach(function(level0Names) {
// code here
});
我遇到的问题是它一直给我一个错误,指出level0Data is not defined.
我知道这是一个相当新手的问题,但我会很感激一些指导。
谢谢!
【问题讨论】:
-
这是范围的问题 - 变量在
res.on('end', () => {内定义......在此之外,它没有定义 - 即使该变量是在外部范围内定义的,它仍然是空的在它现在未定义的地方 - 由于异步 -
看看你做得怎么样
level0Data.forEach((k,v) => {...你为什么不把// code here也放在那个循环里? -
@some - 你有我可以骑的全球自行车吗? :p
-
@JaromandaX 不,但我昨天买了一辆电动滑板车,所以如果你来瑞典,并且很好,我可以让你试试:p
-
@GurpreetSingh 最好在 end-event-handler 中处理所有内容。
标签: javascript node.js trello