如何使用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

回到顶部