2015-10-21 63 views
0

我正在嘗試爲正在製作的網頁遊戲創建一個大廳,並且我想將正在創建大廳的人添加到大廳的「玩家「陣列。我正在使用解析,並且我不能爲我的生活弄清楚如何將播放器對象附加到數組中。任何幫助都很棒!嘗試將玩家對象添加到我的會話中的玩家陣列

function createLobby(){ 
    var ses = Parse.Object.extend("Session"); 
    var query = new Parse.Query(ses); 
    var exists = false; 
    query.equalTo("sessionName", document.getElementById("lobby").value); 
    query.find({ 
    success: function(results) { 
     console.log("Successfully retrieved " + results.length); 
     if(results.length!=0){ 
     alert("Session already exists"); 
     exists = true; 
     } 
    }, 
    error: function(error) { 
     alert("Error: " + error.code + " " + error.message); 
    } 
    }); 
    if(exists==false){ 
     session.set("sessionName",document.getElementById("lobby").value); 
     var Players = Parse.Object.extend("Player"); 
     var query = new Parse.Query(Players); 
     query.equalTo("Name", "testName"); 
     query.find({ 

     success: function(results) { 
     var query2 = new Parse.Query(Players); 
     query2.get(results[0].id, { 
      success: function(k) { 
      console.log(k); 
      session.add("Players", k); 
      }, 
      error: function(object, error) { 
       // The object was not retrieved successfully. 
       // error is a Parse.Error with an error code and message. 
      } 
     }); 
     }, 
     error: function(error) { 
     alert("Error: " + error.code + " " + error.message); 
     } 
     }); 

     session.save(null, { 
     success: function(object) { 
     $(".success").show(); 
     }, 
     error: function(model, error) { 
     $(".error").show(); 
     } 
     }); 
    } 
} 

回答

0

您無法理解回調是如何工作的。我建議你閱讀關於JavaScript回調和承諾。以下是這應該這樣寫:

function createLobby() { 
    var ses = Parse.Object.extend("Session"); 
    var query = new Parse.Query(ses); 
    var exists = false; 
    query.equalTo("sessionName", document.getElementById("lobby").value); 
    query.find({ 
    success: function(results) { 
     console.log("Successfully retrieved " + results.length); 
     if (results.length != 0) { 
     alert("Session already exists"); 
     return; 
     } 
     session.set("sessionName", document.getElementById("lobby").value); 
     var Players = Parse.Object.extend("Player"); 
     var query = new Parse.Query(Players); 
     query.equalTo("Name", "testName"); 
     query.find({ 
     success: function(results) { 
      var query2 = new Parse.Query(Players); 
      query2.get(results[0].id, { 
      success: function(k) { 
       console.log(k); 
       session.add("Players", k); 
      }, 
      error: function(object, error) { 
       // The object was not retrieved successfully. 
       // error is a Parse.Error with an error code and message. 
      } 
      }); 
     }, 
     error: function(error) { 
      alert("Error: " + error.code + " " + error.message); 
     } 
     }); 
     session.save(null, { 
     success: function(object) { 
      $(".success").show(); 
     }, 
     error: function(model, error) { 
      $(".error").show(); 
     } 
     }); 
    }, 
    error: function(error) { 
     alert("Error: " + error.code + " " + error.message); 
    } 
    }); 
} 
+0

事實上,與解析誤差函數不叫,除非有一個實際的錯誤。即使它不在那裏,它仍然是成功的。 –

+0

好吧,那麼你只需將這段代碼移入'success'回調代替'error'回調。我已經更新了我的答案。 –