Добрый день.
Суть вопроса вот в чем:
1. Выполняется запрос на сервер
post = getPostByName(name)
2. По id поста выполняется поиск тегов
post.tags = getTagsByPostId(post.id)
3. Если у поста есть комментарии, выполняется поиск комментариев
post.comments = post.hasComments ? getCommentsByPostId(post.id) : null
Если первые два пункта можно выполнить через
mergeMap, то третий пункт непонятно как решить.
this.postService.getPostByName(name)
.pipe(
mergeMap(
post => this.postService.getTagsByPostId(post.id),
(post, tags) => {
post.tags = tags;
return post;
}
),
.subscribe( post => {
this.posts.push(new Post(post));
});
Как лучше добавить еще один запрос по условию и дождаться его выполнения? Проблема в том, что все данные должны поступить в конструктор уже сформированные, т.е. необходимо дождаться выполнения двух (или трех) запросов перед передачей в конструктор
new Post(post)