如何设置空字符串变量等于另一个字符串变量

时间:2014-09-15 19:10:12

标签: javascript

我不是一个JavaScript开发者,但我必须将它用于我的后端。出于某种原因来自客观c背景,我无法在javascript中执行最简单的任务。我想要做的就是将变量“thePlayer”中的这个字符串保存到我的后端,在“playerName”键下。忽略其他一切。关于第2行,第13行和第24行的所有内容。我的云日志一直说关键字“playerName”期待一个字符串,但却得到了一个对象。所以我的问题是为什么thePlayer被保存为对象?

Parse.Cloud.define("getUsers", function(request, response) {
    var thePlayer = new String(); <<<***********************************************
    var query = new Parse.Query(Parse.User);
query.find({
    success: function(results){
        var users = [];
        //extract out user names from results
        for(var i = 0; i < results.length; ++i){
            users.push(results[i].id);
        }
        var rand = users[Math.floor(Math.random() * users.length)];
        console.log("The random user is" + rand);
        thePlayer = rand;   <<<******************************************************
        response.success(users);
    }, error: function(error){
        response.error("Error");
    }
});

var GameScore = Parse.Object.extend("Messages");
var gameScore = new GameScore();


gameScore.set("score", 1337);
gameScore.set("playerName", thePlayer);  <<<**************************************************
gameScore.set("cheatMode", false);

gameScore.save(null, {
  success: function(gameScore) {
// Execute any logic that should take place after the object is saved.
alert('New object created with objectId: ' + gameScore.id);
  },
  error: function(gameScore, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and message.
alert('Failed to create new object, with error code: ' + error.message);
  }
});
});

2 个答案:

答案 0 :(得分:1)

尝试:gameScore.set("playerName", thePlayer.toString());

应该有用。

答案 1 :(得分:1)

我认为这是因为当你定义thePlayer时,它是一个字符串对象(见下面的例子)

http://jsfiddle.net/uhpwgoum/

当您尝试将其设置为playerName时,查询尚未完成(尚未调用成功函数),因此您将字符串对象设置为playerName,因此您会收到该错误

如果您定义了thePlayer,请参阅此处的示例http://jsfiddle.net/uhpwgoum/1/

var thePlayer = "";

您不会收到该错误,但如果查询未完成,您的playerName可能会为空字符串。