Как вернуть observer?

У меня есть функция в сервисе для добавления документа:

addDocument(data: ExistingRelationShips) {
           return this.applicationExistingRelationShipsService
               .create(data)
                   .pipe(tap((document) =>  this.documents.next(this.documents.getValue().concat(document))))
             
    }


Я хочу по получению результата от сервера вызывать
this.documents.next(this.documents.getValue().concat(document))


затем венуть обсервер с данными, чтобы подписаться из вне:
this.service.addDocument().subscribe((res) => console.log(res));


Но что-то запутался
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
fetchDocuments(data) {
  return this.documents.pipe(
    switchMap(documents => forkJoin([
       of(documents),
       this.applicationExistingRelationShipsService.create(data)
    ])),
    map(([state, update]) => [...state, ...update]),
    tap(state =>  this.documents.next(state)),
  )
}


вообще подобная штука не гарантирует правильного порядка добавления документов, но на сегодня хватит :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы