angular / rx js - глубокое копирование данных, отправленных в виде строки - PullRequest
0 голосов
/ 12 марта 2020
{
  single: {
   userId: {
    messages: Message[],
  },
  group: {
    groupId: {
      messages: Message[],
    },
  },
  notifications: {
    id: data,
  }
}

что данные отправляются через JSON .stringify (objAbove). проблема с JSON.parse(objAbove), если в свойстве messages есть объект, которого там нет,

    1   private _subToStoredMessages(): Observable<void> {
    2     return this.socket.fromEvent('ask-messages').pipe(
    3       map((msgs: string): void => {
    4         console.log('--->', msgs); // all information is there
   10         this.jsonConverter(msgs)
   11           .then(res => {
   12             console.log('res from json converter', res);
   13             this.handleStoredMessages(res);
   14           })
   15           .catch(err => {
   16             console.log(err);
   17           });
   18       }),
   19     );
   20   }
   21
   22   private async jsonConverter(json: string): Promise<any> {
   23     return new Promise((resolve, reject) => {
   24       console.log('json', JSON.parse(json)); // anything in messages property is missing
   25       resolve(JSON.parse(json));
   26       reject({ problem: 'error', id: JSON.parse(json) });
   27     });
   28   }

ОБНОВЛЕНИЕ:

изображение журнала консоли, показывающее проблему : enter image description here

Если есть массив с 5 сообщениями, то будут отображаться только 3 сообщения, если есть массив с одним сообщением, то он не будет будь там. Я понятия не имею, что происходит, и я потратил около 6 часов на это. любая помощь будет очень ОЧЕНЬ оценена. спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...