我想用json对象的主体初始化全局变量。但是在我的代码if
中,而不是if
中,else
的一部分代码会执行,如果console.log(typeof ticker)
我不确定。看来是问题所在。
var ticker;
request({
method: 'POST',
url: 'xyz'
}, (err, res, body) => {
if (typeof ticker === undefined) {
ticker = body;
} else {
console.log(ticker)
}
})
答案 0 :(得分:4)
答案 1 :(得分:0)
上面的马可答案是正确的答案。我要解决的是以下语句,以及如何自己验证:
如果条件不能正常工作
您可以使用调试器来了解您的程序。由于您正在使用节点,因此可以从命令行验证此权限。
debugger
语句。这将设置一个断点。node inspect <filename>
c
或cont
您现在在这里:
> 3 debugger
4 if (typeof ticker === undefined) {
5 ticker = body
debug> _
您现在可以直接在REPL中运行表达式,以查看节点如何在运行时对其求值:
debug> typeof ticker
'undefined' // aha, there's our programming error
debug> typeof ticker === undefined
false
debug> typeof ticker === 'undefined' // it works
true
要进一步验证程序的流程,请在REPL中输入next
以逐行查看程序的流向。
(可选)您可以利用chrome的界面进行调试:
node --inspect-brk <filename>
chrome://inspect
Open dedicated devTools for node
Chrome的界面可让您突出显示或悬停在变量和表达式上以查看其值。