【问题标题】:JavaScript if() case in CloudCode.CloudCode 中的 JavaScript if() 案例。
【发布时间】:2014-07-11 00:47:45
【问题描述】:

在这段代码中,我试图使用他唯一的用户名来获取该方法的调用者的对象。如果对象存在-> 更新它,或者不存在-> 创建一个。 但是:我的布尔值“找到”永远不会改变。尽管如此,它必须在我的查询之后进行更改。因此,我的 if 语句从未使用过,因此没有创建对象。 有谁知道为什么?

据我所知,从函数内更改全局值是可以的。

Parse.Cloud.define("updateUserGeneral", function(request, response){

var UserGeneralObject = Parse.Object.extend("userGeneral");
var userGeneralNew = new UserGeneralObject();
var found = false;


var username = request.params.username;
var private_name = request.params.private_name;
var intentions = request.params.intentions;
var gender = request.params.gender;
var looking_gender = request.params.lookinggender;
var age = request.params.age;
var min_age = request.params.min_age;
var max_age = request.params.max_age;
var radius = request.params.radius;
var applyradius = request.params.applyradius;


   var query2 = new Parse.Query("userGeneral");
   query2.equalTo("username", username);
      query2.first({
     success: function(userGeneral){
            if(userGeneral!=null){
                found = true;
                userGeneral.set("private_name", private_name);
                userGeneral.set("intentions", intentions);
                userGeneral.set("gender", gender);
                userGeneral.set("lookinggender", looking_gender);
                userGeneral.set("age", age);
                userGeneral.set("max_age", max_age);
                userGeneral.set("min_age", min_age);
                userGeneral.set("radius", radius);
                userGeneral.set("applyradius", applyradius );
                userGeneral.save();
                response.success("Succesfully saved userGeneral");      
            }else{
                found = false;
            }

     },
     error: function(error){
         found = false; 
     }
   });

      if(found == false){
          userGeneralNew.set("username", username);
          userGeneralNew.set("private_name", private_name);
          userGeneralNew.set("intentions", intentions);
          userGeneralNew.set("gender", gender);
          userGeneralNew.set("lookinggender", looking_gender);
          userGeneralNew.set("age", age);
          userGeneralNew.set("max_age", max_age);
          userGeneralNew.set("min_age", min_age);
          userGeneralNew.set("applyradius", applyradius);
          userGeneralNew.set("radius", radius);
          userGeneralNew.set("lookingForChat", 0);
          userGeneralNew.set("lookingForInvitation", 1);
          userGeneralNew.set("userHasChat", 0);

            userGeneralNew.save(null, {
                success: function () {
                    console.log("Save ok");
                    response.success("Succesfully saved userGeneral New");

                },
                error: function (error) {
                    console.log("Save failed");
                    response.error("Failed saving userGeneral New");

                }
            });
      }

});

【问题讨论】:

  • query2.first 是异步的吗?
  • 你的意思是它是否在一个新线程中?我猜是的。如果是这样:我如何访问标准变量?

标签: javascript function boolean parse-platform


【解决方案1】:

success: function(userGeneral){ 是一个回调函数。在这种情况下,代码很可能会在您更新找到的变量之前完成。所以下面的代码会在success函数运行之前运行。

if(found == false){
      userGeneralNew.set("username", username);
      userGeneralNew.set("private_name", private_name);
      userGeneralNew.set("intentions", intentions);
      userGeneralNew.set("gender", gender);
      userGeneralNew.set("lookinggender", looking_gender);
      userGeneralNew.set("age", age);
      userGeneralNew.set("max_age", max_age);
      userGeneralNew.set("min_age", min_age);
      userGeneralNew.set("applyradius", applyradius);
      userGeneralNew.set("radius", radius);
      userGeneralNew.set("lookingForChat", 0);
      userGeneralNew.set("lookingForInvitation", 1);
      userGeneralNew.set("userHasChat", 0);

        userGeneralNew.save(null, {
            success: function () {
                console.log("Save ok");
                response.success("Succesfully saved userGeneral New");

            },
            error: function (error) {
                console.log("Save failed");
                response.error("Failed saving userGeneral New");

            }
        });
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2014-05-08
    • 1970-01-01
    相关资源
    最近更新 更多