7

objectId からユーザー オブジェクトを取得しようとしています。objectId が有効であることはわかっています。しかし、この単純なクエリを機能させることができます。それの何が問題なのですか?user は、クエリの後も未定義です。

var getUserObject = function(userId){
    Parse.Cloud.useMasterKey();
    var user;
    var userQuery = new Parse.Query(Parse.User);
    userQuery.equalTo("objectId", userId);

    userQuery.first({
        success: function(userRetrieved){
            console.log('UserRetrieved is :' + userRetrieved.get("firstName"));
            user = userRetrieved;               
        }
    });
    console.log('\nUser is: '+ user+'\n');
    return user;
};
4

2 に答える 2

0

これに関する問題は、Parse クエリが非同期であることです。つまり、クエリが実行される前に user (null) が返されます。ユーザーに対して何をしたいかは、成功の中に入れる必要があります。私の説明が、なぜ未定義なのかを理解するのに役立つことを願っています。

Promisesを調べてください。最初のクエリから結果を取得した後で、何かを呼び出すより適切な方法です。

于 2014-10-09T20:15:23.683 に答える