角度2 - 两个服务,第二个需要第一个结果

时间:2016-05-23 13:37:21

标签: service angular promise chaining

我想我需要某种类型的承诺链,但语法不包括我......

在同一个组件中:

我打电话:

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

然后我需要打电话:

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

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

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

感谢名单

史蒂夫

1 个答案:

答案 0 :(得分:1)

你可以用这种方式链接承诺:

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

第二个回调将收到第一个回调的承诺返回结果。