Angular 2 - 两个服务,第二个需要第一个的结果

Angular 2 - Two Services, second requires result of first

我想我需要某种类型的 promise 链,但我不懂语法...

在同一组件内:

我打电话给:

this.somethingService.getSomethings().then(somethings => this.somethings = somethings);

那我需要打电话给:

this.otherService.getOthers(this.somethings).then(others => this.others = others);

在第二次服务调用中,我使用第一个服务的结果对其内容执行聚合函数,但在进行第二次调用时它是空的,因此第二个服务 returns 为空。

如何让第二个服务等到第一个承诺已经解决。

谢谢

史蒂夫

您可以这样链接承诺:

this.somethingService.getSomethings().then(somethings => {
  this.somethings = somethings;
  return this.otherService.getOthers(somethings);
}).then(others => {
  this.others = others;
});

第二次回调会收到第一次回调returns承诺的结果