我正在尝试从 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-notification.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', [])));
}
我不确定如何在这个 ^ 点检查数据,但它没有显示错误。
这是返回“未定义”的电子邮件通知中的代码:
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; }
}
任何帮助表示赞赏。谢谢!