Невозможно прочитать список старых сообщений при получении нового сообщения в сокете в Angular 4 - PullRequest
0 голосов
/ 21 сентября 2019

Я использую socket.io для чата в реальном времени, и я могу получать сообщения через сокет при отправке любого нового сообщения, но когда я пытаюсь соединиться со списком старых сообщений, тогда мой список старых сообщений показывает неопределенное.

Soket в стрельбе сразу после того, как сообщение успешно отправлено обратно в базу данных
Я использую сокет в

ngOnInit() {
        this.socket.emit('init');
       this.socket.on('message',function(data){
        console.log(data) // here new message is receiving when sent new message
       this.oldMessageList = this.oldMessageList.conact(data)// but oldmessage list showing undefined
})

}

Может кто-нибудь помочь мне, почему он показывает неопределенный, Какconcat it

Ваша помощь будет отличной

Заранее спасибо!

1 Ответ

0 голосов
/ 21 сентября 2019

Это не имеет ничего общего с сокетом.Это совет по JavaScript.
Вы должны использовать функцию стрелки.Если нет, this не относится к тому, что вы думаете.

this.socket.on('message',data => { // arrow function here
  console.log(data) // here new message is receiving when sent new message
  this.oldMessageList = this.oldMessageList.conact(data)// this will refer to youtr class, so this.oldMessageList will be defined
})

или используйте совет старой школы:

var that = this
this.socket.on('message',function(data) { // old school function using "that"
  console.log(data) // here new message is receiving when sent new message
  that.oldMessageList = that.oldMessageList.conact(data)// "that" is defined
})
...