2016-08-29 4 views
1

Parse.comのjavascript APIを使用して、私が作業しているアプリケーション用のNode.jsスクリプトを作成しています。 JSの新機能Parse.com Query Find with Javascriptクロージャー完了ハンドラーが結果を表示しない

javascriptクロージャを使用してローカル値をキャプチャしようとしているため、ループの実行ごとに、ハンドラが完了ハンドラを生成するときにループの時点で成功ハンドラが適切な値のuserIdとuserNameを持つようになります。 javascriptのクロージャーに関する私の研究をした後、これはそれを行う方法と思われる。実際、successClosureは適切な時間とnameStuffとuserStuffの適切な値で呼び出されます。ただし、結果は常にUndefinedです。これはParseのJavascript APIと関係がありますか?これはParseのQuery Findで動作しませんか?なぜなら私は単純にfunction(results){...}をsuccessパラメータとして使うと、結果はそこにありますが、ローカル変数は正しくありません。

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.lengthの代わりにresults.countにアクセスしていたので、それが間違っていると思った。結果は未定義だと思った。しかし、実際私はJSのノブであり、正しいAPIを知らないのです。(私はiOSデベロッパーなので、コンパイラを手伝ってくれることに慣れていました!!

関連する問題