【发布时间】:2013-07-18 19:09:51
【问题描述】:
现在我知道,由于 javascript 的执行方式,建议您将所有远程请求作为异步而不是同步运行。虽然我同意 99% 的时间,但有时您确实希望将远程请求作为同步而不是异步运行。例如,加载会话数据是我想要同步执行的操作,因为我不希望在加载该数据之前呈现任何视图。这个 plunker 显示了异步加载会话数据的问题(注意:我使用 $timeout 来模拟异步调用会发生什么):
http://plnkr.co/edit/bzE1XP23MkE5YKWxRYrn?p=preview
data 属性不加载任何内容,因为在尝试获取数据时数据不可用,而 data2 加载只是因为在尝试获取数据时数据可用。现在在这种情况下,我可以将会话变量放在作用域上并完成它,但情况并非总是如此。
除了使用 jQuery 的 .ajax() 方法(尽量少依赖 jQuery)之外,有没有更好的方法在 Angular 应用程序中同步远程调用?
【问题讨论】:
标签: angularjs