如果我使用 ng2 http 提供者 Observable.toPromise() 支持调用启用了承诺的方法,它会按预期工作,但是当我将它用作承诺链的一部分时,它会在 then 处理程序处理并返回结果之前解析返回的承诺。
让 Observable.toPromise() 在承诺链中工作的任何已知问题或我可能会测试的替代方式以使其成为与承诺链兼容的结果?在 http 请求(promise 链中的最后一项)完成其异步请求并返回结果之前,我被此解析承诺阻止。
例如
this.myService.getSomethingInvolvingingMultiplePromiseCalls().then(result => {
let valueFromSomethingInvolvingMultiplePromiseCalls = result;
}, err => {
console.error('landed in app.component outer promise rejected handler, see output window for details')
})
public getSomethingInvolvingingMultiplePromiseCalls(): Promise<string> {
return this.getSomethingInvolvingPromiseCall().then(resultPromise1 => {
let resultPromise1propertyFoo = resultPromise1.propertyFoo;
return this.getSomethingInvolvingNg2HttpProviderToPromiseCall(resultPromise1propertyFoo);
}
.then(resultPromise2 => {
let resultPromise2propertyBar = resultPromise2.propertyBar;
return resultPromise2propertyBar;
}
}
getSomethingInvolvingNg2HttpProviderToPromiseCall(arg1: string): Promise<string> {
let body = 'some body content leveraging arg1';
let headers = …Run Code Online (Sandbox Code Playgroud)