国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

AngularJS中的promise用法分析

2024-05-06 15:17:01
字體:
供稿:網(wǎng)友

本文實(shí)例講述了AngularJS中的promise用法。分享給大家供大家參考,具體如下:

JavaScript異步回調(diào)有好處也有壞處,回調(diào)函數(shù)大量嵌套十分復(fù)雜.所以javascript中還有另一種異步處理模式叫promises.在AngularJS中的實(shí)現(xiàn)就是$q服務(wù).

下面是一些小例子.

then,catch,finally

在鏈最后的 catch 為整個(gè)鏈?zhǔn)教幚硖峁┮粋€(gè)異常處理點(diǎn)
在鏈最后的 finally 總是會(huì)被執(zhí)行,不管 promise 被處理或者被拒絕,起清理作用

<!DOCTYPE html><html>  <head>     <meta name="viewport" content="width=device-width, initial-scale=1.0">    <link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >    <script src="jQuery.min.js"></script>    <script src="angular.min.js"></script>    <script src="bootstrap.min.js"></script>    <script type="text/javascript">      var myapp = angular.module('myapp', []);      myapp.controller('myController', function($scope, $q) {        $scope.send = function() {          var deferred = $q.defer();          var promise = deferred.promise;          promise          .then(function() {            console.log('resolve.....')          }, function() {            console.log('reject.....');          }, function() {            console.log('notify.....');          })          .catch(function() {            console.log('catch..error..')          })          .finally(function() {            console.log('anywhere will be called..');          });          deferred.reject('resolve');        };      });    </script>    <style type="text/css">    </style>  </head>  <body ng-app="myapp">    <div ng-controller="myController">        <button class="btn" ng-click="send()">click</button>    </div>  </body></html>

then第三個(gè)參數(shù)(表征狀態(tài))的應(yīng)用

<!DOCTYPE html><html>  <head>     <meta name="viewport" content="width=device-width, initial-scale=1.0">    <link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >    <script src="jquery.min.js"></script>    <script src="angular.min.js"></script>    <script src="bootstrap.min.js"></script>    <script type="text/javascript">      var myapp = angular.module('myapp', []);      myapp.controller('myController', function($scope, dataService) {        $scope.send = function() {          dataService.getData()          .then(function success(data) {            console.log(data);          }, function error(error) {            console.log(error);          }, function status(process) {            console.log(process);          });        };      });      myapp.factory('dataService', function($q, $interval) {        return {          getData : function() {            var deferred = $q.defer();            var process = 0;            var interval = $interval(function() {              process += 10;              deferred.notify(process);              //reject之后不再繼續(xù)運(yùn)行              // if (process == 50) {              //   deferred.reject(process);              // }              if (process >= 100) {                $interval.cancel(interval);                deferred.resolve(process);              }            }, 1000);            return deferred.promise;          }        };      });    </script>    <style type="text/css">    </style>  </head>  <body ng-app="myapp">    <div ng-controller="myController">        <button class="btn" ng-click="send()">click</button>    </div>  </body></html>            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 博罗县| 砚山县| 九江县| 互助| 方山县| 新源县| 汤阴县| 叶城县| 于都县| 喀什市| 黄骅市| 绥化市| 朝阳市| 扎兰屯市| 营口市| 遂平县| 潍坊市| 根河市| 育儿| 腾冲县| 内黄县| 昆明市| 多伦县| 铁岭市| 平舆县| 伊川县| 广南县| 三穗县| 大埔区| 宣城市| 茌平县| 南靖县| 大石桥市| 永嘉县| 尉氏县| 谷城县| 祥云县| 谢通门县| 阿拉善盟| 天等县| 新密市|