Javascript同步调用

时间:2016-10-06 12:38:28

标签: javascript

我有一个函数,由observe函数调用两次。正如您所看到的,在addMessage函数中,检查是否使用相同的消息调用它,return s。

我的问题是,使用相同的消息调用addMessage函数两次。

我认为原因是因为它在添加第一条消息之前很快完成,第二条消息已经执行。

同步消息的最佳方法是,在处理第二个消息之前,第一个消息是否有时间保存?

  this.messages.observe({
    changed: (newMessage, oldMessage) => this.addMessage(newMessage)
  });

  private addMessage(message: Message): void {
    let foundMessage: Message = this.localMessageCollection.findOne({ _id: message._id });
    if (foundMessage && foundMessage._id === message._id) {
    console.log('addMessage(found): '+message._id+'   '+message.content);
      return;
    }
    console.log('addMessage: '+message._id+'   '+message.content);
    this.addLocalMessage(message);
    this.chatsStorageService.addMessage(this.activeChat, message).then((messageData: Message) => {
      let data = {
        chat: this.activeChat,
        messageString: this.messageString,
        sendMessage: true
      }
      this.events.publish('messages:update', data);
    });
  }

0 个答案:

没有答案