2016-08-29 28 views
1

我正在使用Parse.com javascript API來編寫我正在處理的應用程序的Node.js腳本。對JS很新穎。Parse.com查詢查找與Javascript關閉完成處理程序不顯示結果

我想捕捉本地值使用JavaScript閉包,以便對於循環的每次執行,成功處理程序將具有適當的值userId和userName在循環時它生成完成處理程序。在完成我對javascript閉包的研究之後,這似乎是實現它的方法。實際上,successClosure被稱爲適當的時間量,並且具有正確的nameStuff和userStuff值。但是,結果始終未定義。這是否與Parse的Javascript API有關?這不適用於Parse的查詢查找嗎?因爲當我簡單地使用函數(結果){...}作爲成功參數時,結果在那裏,但局部變量不正確。

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

你確定'查詢的選項。 find()'不應該全部包裝在一個對象中嗎? – stevenelberger

+0

是的,我只是忘記了我的例子中的括號。 – NickDK

回答

0

我想通了。我所做的其實是正確的。我認爲這是錯誤的,因爲我正在訪問results.count而不是results.length,認爲它是未定義的結果。但事實上,它是我作爲一個JS noob和不知道正確的API :(。我是一個iOS開發,所以我習慣了有一個編譯器幫助我!!