|
今天在写AngularJS Service,然后希望在Controller中使用Service提供Model。架构上,我希望Controller可以直接获得数据,因此有了“同步读取”数据的想法。 但是,我们都知道,在前端做同步读取显然不是好的实践做法,毕竟JavaScript的很多良好体验都是通过异步请求实现的。而且,同步之后会严重影响前端的体验和性能。所以,这里把标题写成“同步读取服务器数据”,更多是吸引眼球。希望刚刚你不是拿着砖头正准备拍的! :) 不过,我在网上搜索了一下,还真有人一开始和我想法一样的,见参考资料2。转入正题。 AngularJS提供了一个内置Service $q,它提供了一种承诺/延后(promise/deferred),可以保证我们的调用代码一定能够拿到数据。当然,我们可以猜到,最后去服务器取数据的方式肯定是异步的。只不过这个服务提供了表面上是同步访问的API,当数据获取成功之后,自动将数据提供给调用的代码。 话不多说,上代码看看: 1. 创建一个Service,去服务器读取数据: 2. 在Controller上(以同步方式)使用这个Service: |
angularjs承诺
最新推荐文章于 2024-09-21 17:25:08 发布
本文探讨了在AngularJS中使用内置Service$q实现数据的同步读取与异步请求的结合,通过创建Service来从服务器获取数据,并在Controller中以同步方式调用Service,获取并展示数据。同时,解释了Service$q提供的Promise/Deferred机制如何在前端提供一种看似同步的数据访问体验,实际上却通过异步方式完成数据获取。

1万+

被折叠的 条评论
为什么被折叠?



