Итерировать объект, который является результатом и наблюдаемым - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь перебрать объект, который является результатом и наблюдаемым.

Проблема в том, что я получаю сообщение. Свойство 'forEach' не существует для типа '{}'.

 userValidator(): AsyncValidatorFn {
return (control: AbstractControl): Observable<{ [key: string]: any } | null> => {

  return  this.un.unidades.pipe(
    map(res => {
      res.forEach(element => {
        // Here it fails!! It says Property 'forEach' does not exist on type '{}'.
      });
      console.log(res) // Array of objects
      console.log(typeof(res)) // Output: object
              })
  )
};

Если я пытаюсь использовать метод для каждого с подпиской наблюдаемого, это работает. Но когда я использую трубу (карту), это не так.

Как мне перебрать объект?

1 Ответ

0 голосов
/ 18 ноября 2018

Я не уверен на 100%, но, глядя на интерфейс наблюдаемого, кажется, что это объект, свойства которого являются массивами объектов. Ошибка также указывает на это. Если бы мы могли видеть результат журнала консоли.

Попробуйте зарегистрировать res.length, чтобы убедиться, что это массив, хотя я предполагаю, что он скажет, что длина не существует в объекте.

Если это объект, вам нужно перебрать ключи или использовать Object.values ​​(res) .forEach, а затем перебрать массивы.

...