Я пытаюсь вернуть список задач из службы Angular, которая получает данные из спокойного .NET API. API возвращает правильные данные, но когда console.log дает результат из подписанной функции, он только не определен. Пожалуйста, помогите!
Вот метод API, который работает правильно: TaskController.cs
[HttpGet, Route("")]
public IEnumerable<GetAllTasksAndInfoDto> GetAll()
{
IEnumerable<GetAllTasksAndInfoDto> tasks = _taskRepository.GetAllTasksAndInfo();
return tasks;
}
У меня есть две службы с именем task.service.ts и одна, называемая email -tification.service. .ts. Задача - вернуть все задачи в коллекцию. Уведомление по электронной почте предназначено для извлечения задач из службы задач, а затем итерации по ним для проверки конкретного значения свойства в данных задачи.
Вот метод из task.service.ts:
export class TaskService {
constructor(private http: HttpClient, private messageService: MessageService) {}
getTasks(): Observable<getAllTasksAndInfo[]> {
return this.http.get<getAllTasksAndInfo[]>(http://localhost:xxxxx/api/task)
.pipe(
tap(_=>this.log('fetched tasks')),
catchError(this.handleError<getAllTasksAndInfo[]>('getTasks', [])));
}
Я не уверен, как проверить данные в этой точке ^, но это не показывает ошибку.
Вот код из уведомления по электронной почте, который возвращает «Undefined»:
export class EmailNotificationService{
tasks: getAllTasksAndInfo[];
constructor(private http: HttpClient, private messageService: MessageService, public taskService: TaskService)
{
this.getTasks().subscribe(result => this.tasks = result);
}
getTasks(): Observable<getAllTasksAndInfo[]>{
return this.taskService.getTasks();
}
this.tasks.forEach((task) => {
console.log(`task: ${JSON.stringify(task)}`);
}
});
Здесь я получаю сообщение об ошибке в консоли за попытку перебрать и неопределенный объект.
Вот мой класс машинописи:
export class getAllTasksAndInfo {
taskId: number;
stepName: string;
officeName: string;
csrName: string;
taskType: string;
daysActive: number;
}
, а вот мой класс API:
public class GetAllTasksAndInfoDto
{
public int taskId { get; set; }
public string stepName { get; set; }
public string officeName { get; set; }
public string csrName { get; set; }
public string taskType { get; set; }
public int daysActive { get; set; }
}
Любая помощь приветствуется. Спасибо!