大佬教程收集整理的这篇文章主要介绍了angular – http提供程序Observable.toPromise()在promise链中没有按预期工作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使Observable.toPromise()在promise链中工作的任何已知问题或我可能测试的替代方法使其成为与promise链兼容的结果?在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 = new Headers({ 'Authorization': 'Bearer ' + accessToken,'Content-Type': 'application/x-www-form-urlencoded' }); let options = new requestOptions({ headers: headers }); return this.http.post(resourceBaseAddress + '/someRestApi',body,options).toPromise().then(response => { let responseJson = response.json(); return responseJson['someJsonProperty']; }); } }
提前感谢任何见解或建议.
它涉及创建和返回@L_616_7@typescript延迟的promise,我控制解析只有在我使用angular2 http provider toPromise()调用then方法调用方法时才解析.
我没有与其他承诺链接方案有什么关系,但无论出于何种原因,在这种情况下允许停放方法调用方,直到完成链中的http提供者toPromise()调用.
public getSomethingInvolvingingMultiplePromiseCalls(): Promise<String> { let resolveFn,rejectFn; let promise = new Promise((resolve,reject) => { resolveFn = resolve; rejectFn = reject; }); this.getSomethingInvolvingPromiseCall().then(resultPromise1 => { this.getSomethingInvolvingNg2httpProviderToPromiseCall(resultPromise1).then(resultPromise2 => resolveFn(resultPromise2)); } return promise; // return the promise for outside callers to wait on }
以上是大佬教程为你收集整理的angular – http提供程序Observable.toPromise()在promise链中没有按预期工作全部内容,希望文章能够帮你解决angular – http提供程序Observable.toPromise()在promise链中没有按预期工作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。