JavaScript if() case in CloudCode.

JavaScript if() case in CloudCode.

本文关键字:in CloudCode case if JavaScript      更新时间:2023-09-26

在此代码中,我试图使用该方法的调用者的唯一用户名获取该对象。如果对象存在->更新它,不存在->创建一个。然而,我的布尔值"found"永远不会改变。即使,它必须在我的查询后更改。因此,我的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");
                }
            });
      }
});

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");
            }
        });
  }