Мне нужно вызвать службу с асинхронным (http) возвратом и использовать ее вывод в качестве дополнительного входа к методу службы (который возвращает наблюдаемое). Какой лучший способ сделать это в Angular 4 +?
Я пытался «связать» результаты в методе «подписка» первого сервиса, но при этом мой сервис всегда возвращает «ноль».
public secondServiceCall: Observable<object> {
this.firstService.next().subscribe(result=> {
item.number = result;
return this.httpService.post<object>('/new', item);
});
}
Я ожидал, что функция не вернется, пока не будет завершена подписка на firstService (асинхронно), но этого не произошло - и вместо этого я получил 'null' в своей вызывающей функции.
Я также пытался использовать вызов firstService в качестве наблюдаемой - она правильно возвращает вторую наблюдаемую, но никогда не ждет выполнения функции then для запуска второй наблюдаемой.
this.firstService.next().toPromise().then(result=> {
item.number = result;
});
return return this.httpService.post<object>('/new', item);