如何使用AngularJS进行$ http同步调用
有什么方法可以使用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调用的更多信息。
希望对您有所帮助。
以上是 如何使用AngularJS进行$ http同步调用 的全部内容, 来源链接: utcz.com/qa/410045.html