在我的角度应用程序中,我有一个流程中的最后一页,询问填写调查问卷的人是否需要其他信息,如果需要,请输入他们的电子邮件地址。当他们按下按钮提交他们的电子邮件地址时,我想立即将他们重定向到外部网站(这个页面每个调查问卷都会更改,并且很可能是我们客户的公共网页之一)。
提交方法可能需要一段时间才能完成,因为它必须生成相对复杂的报告并将其附加到电子邮件中,然后发送该电子邮件(而不是发送给提交的人)。
理论上我不需要在重定向用户之前等待submit方法完成,我希望在promise解决之前立即执行。
以下代码执行此操作:
requestReportPromiseCall(emailAddress);
this.$window.location.href = this.MasterPageService.Reseller.forwardingWebsiteUrl;
正如您所看到的那样,没有“.then(()=> {}”虽然这在技术上有效,但它会抛出一个错误,您可以在开发工具中看到:
localhost:3000 / assets / lib / angular / angular.min.js:123可能未处理的拒绝:{“data”:null,“status”: - 1,“config”:{“method”:“POST” “transformRequest”:[空], “transformResponse” ...
我想我明白为什么会发生这种情况但是我想知道是否有更好的方法来做到这一点所以没有错误发生或者甚至可能更改方法所以它不等待响应(可能使电子邮件发送API方法工作像异步方法一样)?