在此之前等待另一个承诺时如何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", {});
    });      
}