Sql server 如何使同步调用成为异步调用?
我有一个显示内部流程状态的应用程序。它还有一个单独的视图,允许您设置新记录。要设置新记录,您需要填写一份表格,提交后会向mySql server 如何使同步调用成为异步调用?,sql-server,angularjs,node.js,Sql Server,Angularjs,Node.js,我有一个显示内部流程状态的应用程序。它还有一个单独的视图,允许您设置新记录。要设置新记录,您需要填写一份表格,提交后会向mynodejs服务器发出以下呼叫: 将记录插入表中 启动存储过程 将您送回状态页 这里的问题是,发生这种情况时页面会挂起,因为有时存储过程需要一两分钟才能运行。因此,您需要等待几分钟,然后返回状态页面 现在,我不想在前端看到这个存储过程的任何退出代码,因为您将在状态页面上看到它的状态。我想知道是否有一种方法可以让我启动这个过程,但是前端不关心回报 我尝试在对服务器的$ht
nodejs
服务器发出以下呼叫:
- 将记录插入表中
- 启动存储过程
- 将您送回状态页
$http
调用之前添加$location.path()
,但是$http
调用从未发生过
有什么想法吗
谢谢 您可以将存储过程调用包装在承诺中。浏览器将发出呼叫并继续,而无需等待呼叫完成,您可以在“解决”或“拒绝”功能中做出适当反应。您可以使用angular的$q服务:
insertRecord();
$q(function() {
storedProcCall();
});
redirect();
我能做到这一点,但不能解决或拒绝吗?@Jacob
resolve
&reject
用于传达承诺的结果或正确处理错误。上面的代码片段将启动storedProcCall()
函数async,然后返回调用上下文,您将永远不会收到关于结果的任何通信。