继上一节中我们使用到$q来辅助完成了按需加载文件。
这节课我先简要的介绍一下$q
先从功能上做简要介绍的话:
我想通过一个故事来简要的介绍$q,就那最近比较普遍的叫餐服务举例吧
今天我想吃牛肉炒饭,所以我打电话订餐跟老板说了,餐弄好了给我送到我公司来,我给了他一个明确的地址。这个过程就是$q.defer.
因为炒饭不是点了能到,要等待厨师加工和送餐,所以这一个延期响应的请求。
餐馆老板跟我说,等饭炒好了,马上给您送过去。也就是老板给了我一个承诺,promise
这样这个延期请求就算建立完成了。就是一个deferred。
这样我就可以继续工作了。说明这个请求是个异步执行的过程。
这样在一段时间后,饭炒好了,老板给我送到了公司,我收下了炒饭,这个过程称为deferred.resolve(data),响应了已处理事件
假如老板接完电话,到厨房看发现没有牛肉了,所以他又打电话给我说做不了了,也就是拒绝我的请求了,就是deferred.reject(error).
老板可以再任何时候跟我说做不了,只要在他还没把饭送来之前都可以。
如果老板好心实时的跟我们汇报,比如饭烧好了,正在配送,快到楼下了之类的,也就是通知。deferred.notify(data)
这