Angular - Typescript - Пытаетесь объединить sh несколько объектов в новый массив объектов, но получаете неопределенное значение? - PullRequest
0 голосов
/ 09 июля 2020

Я создаю службу Angular для извлечения данных из указанного ресурса в серверной части. этот ресурс будет возвращать строки данных в виде потоков, и я хочу сохранить их в массиве, чтобы при вызове службы с помощью этого метода я мог получить доступ к данным каждой полезной нагрузки. У меня есть такой метод для сопоставления потока данных, который использует вспомогательную функцию extractRecords, показанную во втором фрагменте ниже.

getRecords() {
    return this._records = this._resourceService.search(SOMECONSTANT, {})
        .pipe(map(extractRecords))
        .pipe(shareReplay()) as Observable<Data[]>;

Я отладил, и проблема в том, что приведенный ниже массив records [] не определен после того, как я sh каждый массив объектов, выполняя r.payload.push

function extractRecords(result) {
    const records = [];

    if (!isNullOrUndefined(result)) {
        result.forEach(r => {
            if (!isNullOrUndefined(r['payload'])) {
                records.push(r.payload);
            }
        });
    }
    return records;
}

r.payload, возвращает объект каждый раз, когда он проходит через код и возвращает и объект, подобный такому:

  name: "Meredith",
  lastname: "Palmer",
  something: "Micheal",
  identifier: "Scott",
  somethingelse: "Rabies",
  blah: "Awareness",
  blue: "ProAm",
  kneecap: "FunRun"

l oop вернет 1000 таких объектов, и я хочу сохранить их в массиве записей как массив объектов, чтобы мой объект записи выглядел примерно так:

  records: [0]
  name: "Meredith",
  lastname: "Palmer",
  something: "Micheal",
  identifier: "Scott",
  somethingelse: "Rabies",
  blah: "Awareness",
  blue: "ProAm",
  kneecap: "FunRun"
[1]

  name: "Meredith",
  lastname: "Palmer",
  something: "Micheal",
  identifier: "Scott",
  somethingelse: "Rabies",
  blah: "Awareness",
  blue: "ProAm",
  kneecap: "FunRun"

1 Ответ

0 голосов
/ 09 июля 2020

Внутри функции extractRecords () есть два условия if. Используйте отладчик, чтобы проверить, вводит ли код каждый из них, другими словами, поместите точку останова под каждым if и посмотрите, останавливается ли он в обоих.

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