Карта не работает в Angular RxJs - PullRequest
2 голосов
/ 07 апреля 2020

Я просто пытаюсь использовать функцию карты, но она выдает ошибку. Внутри файла results.map (results => et c) говорится, что «Карта символов не может быть правильно разрешена, возможно, она находится в недоступном месте. модуль '

, enter image description here

import { Component, OnInit } from '@angular/core';
import { take, map,filter, tap } from 'rxjs/operators';
etc

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {
  public project: IProject;

  constructor(

    private appSer: AppService) { }

  public ngOnInit(): void {

    this.appSer.project$
      .pipe(
        take(1),
        map(results =>
          results.map(result => ({
            ...result,
            square: result.square * 5000

          })))
      )
      .subscribe(
        (result: IProject) => {
          console.log(result);

        },
        (error: any) => {
          console.error(error);
        },

    );
  }
}

Ответы [ 2 ]

4 голосов
/ 07 апреля 2020

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

  .pipe(
    map(result => ({
      ...result,
      square: result.square * 5000
    }))
  )

Если бы результат был массивом, вам понадобился бы дополнительный оператор map.

1 голос
/ 07 апреля 2020

Вам не нужна вторая карта, просто сделайте так:

      .pipe(
        take(1),
        map(results => ({
            ...result,
            square: result.square * 5000
        }))
      )

(просто убедитесь, что указаны в скобках)

...