小编Dus*_*one的帖子

使用一个 observable 的输出作为另一个 angular 的输入的正确方法是什么?

我需要使用异步 (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)

asynchronous observable rxjs angular

0
推荐指数
2
解决办法
1555
查看次数

标签 统计

angular ×1

asynchronous ×1

observable ×1

rxjs ×1