我正在使用Parse.com javascript API为我正在处理的应用编写Node.js脚本。 JS的新手。
我正在尝试使用javascript闭包捕获本地值,以便每次执行循环时,成功处理程序在生成完成处理程序时将在循环时具有正确的userId和userName值。在对javascript闭包进行研究之后,这似乎就是这样做的方法。实际上,successClosure被称为适当的次数,并且具有nameStuff和userStuff的正确值。但是,结果始终是未定义的。这与Parse的Javascript API有关吗?这不适用于Parse的Query Find吗?因为当我只使用函数(结果){...}作为成功参数时,结果存在,但局部变量不正确。
for (i = 0 ; i < results.count; i++) {
var query = //Some Parse query based on results[i]
var userId = …
var userName = …
var successHandler = successClosure(userName, userID)
query.find({success : successHandler,
error : {}
});
}
...
function successClosure(userName, userId) {
var nameStuff = userName
var userStuff = userId
return function(results) {
console.log(nameStuff, userStuff)
console.log(results)
}
}
答案 0 :(得分:0)
我明白了。我正在做的事实上是正确的。我认为这是错误的,因为我正在访问results.count而不是results.length,认为这是未定义的结果。但事实上,我是一个JS菜鸟,不知道正确的API :(。我是一个iOS开发人员,所以我习惯让编译器帮助我!!