только первый объект сохраняется в javascript для цикла

На parse.com я пытаюсь сохранить объект, который включает в себя:

  • тело сообщения,
  • имя отправителя,
  • идентификатор отправителя,
  • и имя получателя

    в класс под названием «Сообщения». Однако объект сохраняется правильно, когда я пытаюсь использовать цикл for, чтобы сохранить 3 разные копии, каждая с другим и случайным получателем, сохраняется только первый объект.

randUsers — это массив с тремя случайными пользователями.

Как я могу это исправить?

function sendLean(leanBody, leanSenderName, leanSenderId, randUsers){
    var Messages = Parse.Object.extend("Messages");
    var messages = new Messages();
    for(var i = 0; i < 3; ++i){

      messages.set("messageBody", leanBody);
      messages.set("recipientId", randUsers[i]);
      messages.set("senderName",  leanSenderName);
      messages.set("senderId", leanSenderId);

      messages.save(null, {
        success: function(messages) {
          // Execute any logic that should take place after the object is saved.
          alert('New object created with objectId: ' + messages.id);
        },
        error: function(messages, 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);
        }
      });
    }

person ian    schedule 14.10.2014    source источник
comment
не видя, как выглядит объект Messages, я бы предложил создать экземпляр объекта внутри вашего цикла for вместо изменения свойств при каждом проходе цикла.   -  person dfperry    schedule 14.10.2014
comment
var messages = new Messages; — это только один объект, поскольку он не находится внутри цикла.   -  person StackSlave    schedule 14.10.2014


Ответы (1)


Вам нужно, чтобы каждый новый экземпляр вашего объекта Messages находился внутри вашего цикла for. Сдача

var messages = new Messages();
for(var i = 0; i < 3; ++i){

to

for(var i=0,l=randUsers.length; i<l; i++){
  var messages = new Messages;

если randUsers является массивом или

for(var i in randUsers){
  var messages = new Messages;

если randUsers является объектом.

person StackSlave    schedule 14.10.2014