Javascript 理解局部变量、闭包和迭代器
我有一个如下所示的代码块,它是一个同步功能。 我想在Javascript 理解局部变量、闭包和迭代器,javascript,typescript,asynchronous,iterator,closures,Javascript,Typescript,Asynchronous,Iterator,Closures,我有一个如下所示的代码块,它是一个同步功能。 我想在回复中收集有关项目的信息 然而,即使我有项目,reply也总是作为空数组返回。 当我签入调试器时,信息将reply显示为闭包变量,而不是local。 我想知道这里的吊装是否有什么我不明白的地方 嗯,这也是typescript,我想知道transpiler的行为是否有细微的不同 我可能应该在这里使用.forEach,因为我没有捕获映射的返回或转换对象,但我知道它具有相同的迭代器行为。唯一的另一件事是为x的使用一个更可靠的,但我想了解这里的问题
回复中收集有关项目的信息
然而,即使我有项目,reply也总是作为空数组返回。
当我签入调试器时,信息将reply
显示为闭包变量,而不是local
。
我想知道这里的吊装是否有什么我不明白的地方
嗯,这也是typescript,我想知道transpiler的行为是否有细微的不同
我可能应该在这里使用.forEach
,因为我没有捕获映射的返回或转换对象,但我知道它具有相同的迭代器行为。唯一的另一件事是为x的
使用一个更可靠的,但我想了解这里的问题 我认为你犯了语法错误
注意这一点:
reply.push[`-${item.name}`]
在这里,您使用了方括号,而不是偏执,修正后的代码是
reply.push(`-${item.name}`)
我知道javascript,但不知道typescript,但我相信这一定是问题的原因。你说得对!我用打字脚本来防止我犯那样的愚蠢错误。谢谢
invStatus() {
let reply: string[] = []
Logger.log('player.status.items:', this.items)
if (!this.items.length) {
reply.push('nothing')
} else this.items.map(item => {
Logger.log('item', item)
reply.push[`- ${item.name}`]
})
Logger.log('player.status.reply:', reply)
return reply
}