我需要使用异步 (http) 返回调用服务,并将其输出用作服务方法(返回可观察对象)的附加输入。在 Angular 4+ 中执行此操作的最佳方法是什么?
我已经尝试在第一个服务的“订阅”方法中“链接”结果,但这样做我的服务总是返回“空”。
public secondServiceCall: Observable<object> {
this.firstService.next().subscribe(result=> {
item.number = result;
return this.httpService.post<object>('/new', item);
});
}
Run Code Online (Sandbox Code Playgroud)
我预计该函数在 firstService 的订阅完成之前不会返回(类似异步),但这并没有发生 - 相反,我在调用函数中得到了 'null'。
我还尝试将 firstService 调用用作 observable - 这将正确返回第二个 observable,但在触发第二个 observable 之前从不等待“then”函数执行。
this.firstService.next().toPromise().then(result=> {
item.number = result;
});
return return this.httpService.post<object>('/new', item);
Run Code Online (Sandbox Code Playgroud)