有什么方法可以使用AngularJS进行同步调用吗?
AngularJS文档不是很明确,也不是为了找出一些基本内容而扩展。
在服务上:
myService.getByID = function (id) {
var retval = null;
$http({
url: "/CO/api/products/" + id,
method: "GET"
}).success(function (data, status, headers, config) {
retval = data.Data;
});
return retval;
}
不是现在。如果查看源代码(从2012年10月开始),您会发现对XHR
open的调用实际上是硬编码为异步的(第三个参数为true):
xhr.open(method, url, true);
您需要编写自己的执行同步调用的服务。通常,由于JavaScript执行的性质,您通常不需要执行此操作,最终将阻塞其他所有内容。
…但是..如果实际上需要阻止其他所有内容,也许您应该研究promises和$ q
service
。它使您可以等待一组异步操作完成,然后在完成所有操作后执行一些操作。我不知道您的用例是什么,但这可能值得一看。
除此之外,如果您打算自己动手,可以在这里找到有关如何进行同步和异步ajax调用的更多信息。
希望对您有所帮助。
RestTemplate文档中的Spring注意: 注意:从5.0开始,这个类处于维护模式,只接受微小的更改请求和bug。请考虑使用org.springframework.web.reactive.client.WebClient,它具有更现代的API,支持同步、异步和流场景。 https://docs.spring.io/spring-framework/docs/current/javadoc
我正在为一家德国公司评估Dart,将各种Java程序移植到Dart,并对结果进行比较和分析。在浏览器中,飞镖轻松获胜。对于服务器来说,软件性能似乎是一个严重的问题(请看我的这个问题),但这基本上得到了缓解。 现在我正在移植一些“简单”的命令行工具,我没想到会有任何严重的问题,但至少有一个问题。一些工具确实会发出HTTP请求来收集一些数据,独立的Dart虚拟机只以异步方式支持它们。纵观所有我能找到的
我搜索了许多网站和文档,但异步调用使用的代码相同。但不确定为什么它不起作用。如果我错过了什么,有人能帮我吗?
我在Angluar2应用程序中遇到了一个问题。假设我需要进行两个单独的http调用。一个调用直接取决于另一个调用的结果。代码如下所示: 有嵌套的订阅()调用,我想摆脱。
问题内容: 如何在AngularJS中阻止HTTP请求,以便我可以在下一行使用$ http响应? 在下面的示例中,object不会将结果返回到下一行,因此我可以将此结果传递给JavaScript库,因为它返回空白值。 这是示例代码: 问题答案: 您可以为此使用诺言。 这是一个例子: