云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          使用AngularJS與服務(wù)器通訊

          Posted on 2015-02-27 18:39 云自無心水自閑 閱讀(2628) 評論(1)  編輯  收藏 所屬分類: AngularJS
          先給一個例子:
          $http. get('/remote/item' ). then(function(response) {
          console.log('成功。');
          }, function(errResponse) {
          console. error('出錯.' );
          });

          一。介紹Promise
          在這個例子中,$http.get()函數(shù)返回了一個Promise對象, 有了這個對象,我們才能很方便地直接在后面添加then函數(shù)的定義。
          Promise對象在AngularJS中是一個非常重要的存在。它提供了強大的功能和便利性。

          1。異步性
          從定義的語法上看,操作似乎是同步的,但是Promise的工作其實是異步的,只有在服務(wù)端返回數(shù)據(jù)后,后續(xù)的函數(shù)才會被調(diào)用。這是一個事件驅(qū)動,非阻塞式的框架。

          2。它避免了其它框架的嵌套回調(diào)函數(shù)的缺點。
          -所有異步任務(wù)都會返回一個Promise對象
          -每個Promise對象都有一個then函數(shù),then函數(shù)有兩個參數(shù),分別是成功處理函數(shù)和失敗處理函數(shù)
          -失敗處理函數(shù)和成功處理函數(shù)都只會在異步處理完成后被調(diào)用一次
          -then函數(shù)也會返回Promise對象,這樣,我們可以把多個函數(shù)串連起來成為一個函數(shù)鏈
          -成功處理函數(shù)和失敗處理函數(shù)的返回值可以被傳遞到函數(shù)鏈下一個的函數(shù)中
          -如果在成功(或者失敗)處理函數(shù)中,又開始了一個異步調(diào)用,那么函數(shù)鏈中的函數(shù)將會在這個異步調(diào)用結(jié)束后才開始

          二。異步鏈?zhǔn)秸{(diào)用的后續(xù)處理
          假如我們定義了如下的函數(shù)鏈:
          $http.get('/item').then(s1, e1).then(s2, e2).then(s3, e3);
          我們?nèi)绾巫灾鞯母鶕?jù)函數(shù)鏈中每個函數(shù)的運行結(jié)果,決定觸發(fā)后續(xù)函數(shù)的成功處理函數(shù)或者失敗處理函數(shù)呢?
          比如說,在s1處理過程中,發(fā)生問題,于是我們觸發(fā)了e2, 但是在e2處理完后,我們又想觸發(fā)s3.
          AnguarJS提供了$q來滿足這樣的需求。
          如果我們想觸發(fā)函數(shù)鏈中下一個函數(shù)的成功處理,我們只需要最后給出一個返回值,有了返回值,AngularJS會認為函數(shù)執(zhí)行正確,自動調(diào)用下一個函數(shù)中的成功處理
          如果想觸發(fā)失敗處理,那么可以簡單地返回$q.reject(data),這樣就會觸發(fā)下一個函數(shù)的失敗處理



          評論

          # re: 使用AngularJS與服務(wù)器通訊  回復(fù)  更多評論   

          2016-08-16 09:52 by ewrqer
          qwerqwer
          主站蜘蛛池模板: 沭阳县| 湟中县| 临洮县| 澄江县| 平顶山市| 荃湾区| 泰兴市| 涞源县| 平乐县| 沙坪坝区| 苍梧县| 芦山县| 县级市| 卓资县| 乌苏市| 湘西| 沐川县| 福清市| 定州市| 德钦县| 金山区| 乳源| 弋阳县| 民和| 涪陵区| 铁岭市| 灌云县| 浦县| 哈密市| 海林市| 大埔县| 罗甸县| 察哈| 邮箱| 梁河县| 安顺市| 荃湾区| 榆中县| 梅州市| 衡阳县| 沂水县|