Angular: возврат результата подписки - PullRequest
0 голосов
/ 04 мая 2018

Я получаю сообщение об ошибке на IProject
must return a value.

Я хочу вернуть результат из API.

public getProjectDetails(projectId: number): IProject {
        this.testStationService.getProjectById(projectId)
            .subscribe(
                (res) => {
                    return res;
                });
    }

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Вы пытаетесь вернуть значение асинхронной наблюдаемой синхронно. Таким образом, к моменту, когда getProjectById выдает значение, функция getProjectDetails уже завершена и ничего не возвращает.

Вы должны вернуть сам Observable и подписаться на него там, где вам нужны его значения, или даже лучше использовать асинхронный канал -> https://angular.io/api/common/AsyncPipe

Так что getProjectDetails будет выглядеть так:

public getProjectDetails(projectId: number): Observable<IProject> {
    return this.testStationService.getProjectById(projectId);
}
0 голосов
/ 04 мая 2018

Вы также должны вернуть свой метод обслуживания

return this.testStationService.getProjectById(projectId)

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