Parse.com查询使用Javascript闭包完成处理程序不显示结果

时间:2016-08-29 17:56:26

标签: javascript node.js loops parse-platform closures

我正在使用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)
    }


}

1 个答案:

答案 0 :(得分:0)

我明白了。我正在做的事实上是正确的。我认为这是错误的,因为我正在访问results.count而不是results.length,认为这是未定义的结果。但事实上,我是一个JS菜鸟,不知道正确的API :(。我是一个iOS开发人员,所以我习惯让编译器帮助我!!