在此之前等待另一个承诺时如何return一个承诺
how to return a promise when waiting for another promise before that
我的视图模型调用了服务 A,而该服务 A 需要调用另一个服务 B。B 将 return 服务 A 所需的一些值。但这似乎不起作用。
这是我的代码。
class BillingService {
rest: BaseRest;
baseUrl: string;
configurationService: ConfigurationService;
constructor() {
this.configurationService = new ConfigurationService();
this.rest = new BaseRest({ basePath: this.baseUrl, isExternal: true });
}
getClaimsSummary() {
this.configurationService.getBillingConfiguration().then((data: BillingConfigurationModel) => {
this.baseUrl = data.billingBaseUrl;
return this.rest.GET<ClaimSummaryModel>("claims/GetClaimsHistory", {});
});
}}
getClaimsSummary 正在被视图模型调用
this.billingService.getClaimsSummary().then((data: ClaimSummaryModel) => {
//push to array
});
getClaimsSummary 取决于 return 由 configurationService.getBillingConfiguration() 编辑的值 (baseUrl)。我正在尝试了解如何 return getClaimsSummary 以便 viewmodel 可以接受它作为承诺。
请注意,rest 正在使用 "bluebird" promise 库。
then()
已经实现了这个承诺。您所要做的就是 return
它来自您的方法:
getClaimsSummary() {
return this.configurationService.getBillingConfiguration().then((data: BillingConfigurationModel) => {
// ^^^^^^
this.baseUrl = data.billingBaseUrl;
return this.rest.GET<ClaimSummaryModel>("claims/GetClaimsHistory", {});
});
}
我的视图模型调用了服务 A,而该服务 A 需要调用另一个服务 B。B 将 return 服务 A 所需的一些值。但这似乎不起作用。
这是我的代码。
class BillingService {
rest: BaseRest;
baseUrl: string;
configurationService: ConfigurationService;
constructor() {
this.configurationService = new ConfigurationService();
this.rest = new BaseRest({ basePath: this.baseUrl, isExternal: true });
}
getClaimsSummary() {
this.configurationService.getBillingConfiguration().then((data: BillingConfigurationModel) => {
this.baseUrl = data.billingBaseUrl;
return this.rest.GET<ClaimSummaryModel>("claims/GetClaimsHistory", {});
});
}}
getClaimsSummary 正在被视图模型调用
this.billingService.getClaimsSummary().then((data: ClaimSummaryModel) => {
//push to array
});
getClaimsSummary 取决于 return 由 configurationService.getBillingConfiguration() 编辑的值 (baseUrl)。我正在尝试了解如何 return getClaimsSummary 以便 viewmodel 可以接受它作为承诺。
请注意,rest 正在使用 "bluebird" promise 库。
then()
已经实现了这个承诺。您所要做的就是 return
它来自您的方法:
getClaimsSummary() {
return this.configurationService.getBillingConfiguration().then((data: BillingConfigurationModel) => {
// ^^^^^^
this.baseUrl = data.billingBaseUrl;
return this.rest.GET<ClaimSummaryModel>("claims/GetClaimsHistory", {});
});
}